[PATCH 4/5] clean up build system a bit

Mike Frysinger vapier at gentoo.org
Sun Oct 18 08:49:37 UTC 2009


Respect the build environment and make sure to create the directories
before installing into them.

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
 src/Makefile |   39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/src/Makefile b/src/Makefile
index c466bf8..f6bbee5 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -8,10 +8,8 @@
 # Version:	@(#)Makefile  2.85-13  23-Mar-2004  miquels at cistron.nl
 #
 
-CC	= gcc
-CFLAGS	= -ansi -W -Wall -O2 -fomit-frame-pointer -D_GNU_SOURCE
-LDFLAGS	= -s
-STATIC	=
+CFLAGS	?= -ansi -O2 -fomit-frame-pointer
+CFLAGS	+= -W -Wall -D_GNU_SOURCE
 
 # For some known distributions we do not build all programs, otherwise we do.
 BIN	=
@@ -49,6 +47,7 @@ BIN_COMBO	= $(BIN_OWNER):$(BIN_GROUP)
 STRIP		= strip -s -R .comment
 INSTALL_EXEC	= install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 755
 INSTALL_DATA	= install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 644
+INSTALL_DIR	= install -m 755 -d
 MANDIR		= /usr/share/man
 
 ifeq ($(WITH_SELINUX),yes)
@@ -64,56 +63,51 @@ endif
 
 
 # Additional libs for GNU libc.
-ifneq ($(wildcard /usr/lib/libcrypt.a),)
 LCRYPT		= -lcrypt
-endif
 
 all:		$(BIN) $(SBIN) $(USRBIN)
 
+#%: %.o
+#	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+#%.o: %.c
+#	$(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@
+
+init:		LDLIBS += $(INIT_SELIBS)
 init:		init.o init_utmp.o
-		$(CC) $(LDFLAGS) $(STATIC) -o $@ init.o init_utmp.o $(INIT_SELIBS)
 
 halt:		halt.o ifdown.o hddown.o utmp.o reboot.h
-		$(CC) $(LDFLAGS) -o $@ halt.o ifdown.o hddown.o utmp.o
 
 last:		last.o oldutmp.h
-		$(CC) $(LDFLAGS) -o $@ last.o
 
 mesg:		mesg.o
-		$(CC) $(LDFLAGS) -o $@ mesg.o
 
 mountpoint:	mountpoint.o
-		$(CC) $(LDFLAGS) -o $@ mountpoint.o
 
 utmpdump:	utmpdump.o
-		$(CC) $(LDFLAGS) -o $@ utmpdump.o
 
 runlevel:	runlevel.o
-		$(CC) $(LDFLAGS) -o $@ runlevel.o
 
+sulogin:	LDLIBS += $(LCRYPT) $(SULOGIN_SELIBS)
 sulogin:	sulogin.o
-		$(CC) $(LDFLAGS) $(STATIC) $(SELINUX_DEF) -o $@ $^ $(LCRYPT) $(SULOGIN_SELIBS)
 
 wall:		dowall.o wall.o
-		$(CC) $(LDFLAGS) -o $@ dowall.o wall.o
 
 shutdown:	dowall.o shutdown.o utmp.o reboot.h
-		$(CC) $(LDFLAGS) -o $@ dowall.o shutdown.o utmp.o
 
+bootlogd:	LDLIBS += -lutil
 bootlogd:	bootlogd.o
-		$(CC) $(LDFLAGS) -o $@ bootlogd.o -lutil
 
+sulogin.o:	CPPFLAGS += $(SELINUX_DEF)
 sulogin.o:	sulogin.c 
-		$(CC) -c $(CFLAGS) $(SELINUX_DEF) sulogin.c
 
+init.o:		CPPFLAGS += $(SELINUX_DEF)
 init.o:		init.c init.h set.h reboot.h initreq.h
-		$(CC) -c $(CFLAGS) $(SELINUX_DEF)  init.c
 
 utmp.o:		utmp.c init.h
-		$(CC) -c $(CFLAGS) utmp.c
 
+init_utmp.o:	CPPFLAGS += -DINIT_MAIN
 init_utmp.o:	utmp.c init.h
-		$(CC) -c $(CFLAGS) -DINIT_MAIN utmp.c -o init_utmp.o
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
 cleanobjs:
 		rm -f *.o *.bak
@@ -127,6 +121,9 @@ clobber:	cleanobjs
 distclean:	clobber
 
 install:
+		$(INSTALL_DIR) $(ROOT)/bin $(ROOT)/sbin $(ROOT)/usr/bin \
+			$(ROOT)/etc $(ROOT)/usr/include $(ROOT)/$(MANDIR)/man1 \
+			$(ROOT)/$(MANDIR)/man5 $(ROOT)/$(MANDIR)/man8
 		for i in $(BIN); do \
 			$(STRIP) $$i ; \
 			$(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
-- 
1.6.5.rc2




More information about the initscripts-ng-devel mailing list