minit

A small yet feature-complete init (http://fefe.de/minit/)
Log | Files | Refs | README | LICENSE

Makefile (3630B)


      1 all: minit msvc pidfilehack hard-reboot write_proc killall5 shutdown \
      2 minit-update serdo ftrigger waitinterface waitport powersave # governor
      3 
      4 #CFLAGS=-pipe -march=i386 -fomit-frame-pointer -Os -I../dietlibc/include
      5 CC=gcc
      6 PIE=
      7 CFLAGS=-Wall -W -pipe -fomit-frame-pointer -Os $(PIE)
      8 CROSS=
      9 #CROSS=arm-linux-
     10 LDFLAGS=-s $(PIE)
     11 MANDIR=/usr/man
     12 
     13 path = $(subst :, ,$(PATH))
     14 diet_path = $(foreach dir,$(path),$(wildcard $(dir)/diet))
     15 ifeq ($(strip $(diet_path)),)
     16 ifneq ($(wildcard /opt/diet/bin/diet),)
     17 DIET=/opt/diet/bin/diet
     18 else
     19 DIET=
     20 endif
     21 else
     22 DIET:=$(strip $(diet_path))
     23 endif
     24 
     25 ifneq ($(DEBUG),)
     26 CFLAGS+=-g
     27 LDFLAGS+=-g
     28 else
     29 CFLAGS+=-O2 -fomit-frame-pointer
     30 LDFLAGS+=-s
     31 ifneq ($(DIET),)
     32 DIET+=-Os
     33 endif
     34 endif
     35 
     36 ifneq ($(MINITROOT),)
     37 CFLAGS+="-DMINITROOT=\"$(MINITROOT)\""
     38 else
     39 MINITROOT=/etc/minit
     40 endif
     41 
     42 LDLIBS=-lowfat
     43 
     44 libowfat_path = $(strip $(foreach dir,../libowfat*,$(wildcard $(dir)/textcode.h)))
     45 ifneq ($(libowfat_path),)
     46 CFLAGS+=$(foreach fnord,$(libowfat_path),-I$(dir $(fnord)))
     47 LDFLAGS+=$(foreach fnord,$(libowfat_path),-L$(dir $(fnord)))
     48 endif
     49 
     50 minit: minit.o split.o openreadclose.o opendevconsole.o
     51 msvc: msvc.o
     52 ftrigger: ftrigger.o
     53 minit-update: minit-update.o
     54 serdo: serdo.o
     55 waitinterface: waitinterface.o
     56 waitport: waitport.o
     57 powersave: powersave.o
     58 governor: governor.o
     59 
     60 sepcode:
     61 	echo "int main() { return 0; }" > true.c
     62 	if $(DIET) $(CROSS)$(CC) $(CFLAGS) $(FLAGS) -Wl,-z,noseparate-code -o true true.c ; then echo -Wl,-z,noseparate-code 2>/dev/null; fi > sepcode
     63 	rm -f true true.c
     64 
     65 shutdown: shutdown.o split.o openreadclose.o opendevconsole.o sepcode
     66 	$(DIET) $(CROSS)$(CC) $(LDFLAGS) -o shutdown $(subst sepcode,,$^) $(shell cat sepcode)
     67 
     68 %.o: %.c
     69 	$(DIET) $(CROSS)$(CC) $(CFLAGS) -c $<
     70 
     71 %: %.o sepcode
     72 	$(DIET) $(CROSS)$(CC) $(LDFLAGS) -o $@ $(subst sepcode,,$^) $(LDLIBS) $(shell cat sepcode)
     73 
     74 clean:
     75 	rm -f *.o minit msvc pidfilehack hard-reboot write_proc killall5 \
     76 	shutdown minit-update serdo ftrigger waitinterface waitport \
     77 	governor powersave sepcode
     78 
     79 test: test.c
     80 	gcc -nostdlib -o $@ $^ -I../dietlibc/include ../dietlibc/start.o ../dietlibc/dietlibc.a
     81 
     82 pidfilehack: pidfilehack.c sepcode
     83 	$(DIET) $(CROSS)$(CC) $(CFLAGS) -o $@ $< $(shell cat sepcode)
     84 
     85 hard-reboot: hard-reboot.c sepcode
     86 	$(DIET) $(CROSS)$(CC) $(CFLAGS) -o $@ $< $(shell cat sepcode)
     87 
     88 write_proc: write_proc.c sepcode
     89 	$(DIET) $(CROSS)$(CC) $(CFLAGS) -o $@ $< $(shell cat sepcode)
     90 
     91 killall5: killall5.c sepcode
     92 	$(DIET) $(CROSS)$(CC) $(CFLAGS) -o $@ $< $(shell cat sepcode)
     93 
     94 install-files:
     95 	install -d $(DESTDIR)$(MINITROOT) $(DESTDIR)/sbin $(DESTDIR)/bin $(DESTDIR)$(MANDIR)/man8 $(DESTDIR)$(MANDIR)/man1
     96 	install minit pidfilehack $(DESTDIR)/sbin
     97 	install write_proc hard-reboot minit-update $(DESTDIR)/sbin
     98 	install msvc serdo ftrigger waitinterface waitport $(DESTDIR)/bin
     99 	if test -f $(DESTDIR)/sbin/shutdown; then install shutdown $(DESTDIR)/sbin/mshutdown; else install shutdown $(DESTDIR)/sbin/shutdown; fi
    100 	test -f $(DESTDIR)/sbin/init || ln $(DESTDIR)/sbin/minit $(DESTDIR)/sbin/init
    101 	install -m 644 hard-reboot.8 minit-list.8 minit-shutdown.8 minit-update.8 minit.8 msvc.8 pidfilehack.8 serdo.8 $(DESTDIR)$(MANDIR)/man8
    102 	install -m 644 waitinterface.1 waitport.1 ftrigger.1 $(DESTDIR)$(MANDIR)/man1
    103 
    104 install-fifos:
    105 	-mkfifo -m 600 $(DESTDIR)$(MINITROOT)/in $(DESTDIR)$(MINITROOT)/out
    106 
    107 install: install-files install-fifos
    108 
    109 VERSION=minit-$(shell head -n 1 CHANGES|sed 's/://')
    110 CURNAME=$(notdir $(shell pwd))
    111 
    112 tar: clean rename
    113 	cd ..; tar cvvf $(VERSION).tar.bz2 --use=bzip2 --exclude CVS $(VERSION)
    114 
    115 rename:
    116 	if test $(CURNAME) != $(VERSION); then cd .. && mv $(CURNAME) $(VERSION); fi
    117 
    118 pie:
    119 	$(MAKE) all PIE=-fpie