Simplify build rules, based on patch from Mike Frysinger and Gentoo.
authorPetter Reinholdtsen <pere@hungry.com>
Fri, 20 Nov 2009 22:55:47 +0000 (22:55 +0000)
committerPetter Reinholdtsen <pere@hungry.com>
Fri, 20 Nov 2009 22:55:47 +0000 (22:55 +0000)
git-svn-id: svn://svn.sv.gnu.org/sysvinit/sysvinit/trunk@17 456724a4-4300-0410-8514-c89748c515a2

doc/Changelog
src/Makefile

index 2785d213c2b3e075a4012a6e1dddc1388546d361..89f5bb3d9f0bf6d17435f422a9302948bbd76647 100644 (file)
@@ -6,6 +6,7 @@ sysvinit (2.88dsf) UNRELEASED; urgency=low
     from Bill Nottingham.
   * Adjust makefile to make sure the install directories are created
     before files are copied into them.
+  * Simplify build rules, based on patch from Mike Frysinger and Gentoo.
   * Fix minor bug in optimizing of argument parsing.  Based on
     report from jakemus on freshmeat.
   * Add casts to get rid of compiler warning about signed/unsigned issues.
index 0a9075e5029825036bcbce18524222fde33d0af9..d56360e498e2329a7433e9e108410a4e64be7d2b 100644 (file)
@@ -8,9 +8,8 @@
 # Version:     @(#)Makefile  2.85-13  23-Mar-2004  miquels@cistron.nl
 #
 
-CC     = gcc
-CFLAGS = -ansi -W -Wall -O2 -fomit-frame-pointer -D_GNU_SOURCE
-LDFLAGS        = -s
+CFLAGS ?= -ansi -O2 -fomit-frame-pointer
+CFLAGS += -W -Wall -D_GNU_SOURCE
 STATIC =
 
 # For some known distributions we do not build all programs, otherwise we do.
@@ -49,6 +48,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)
@@ -70,50 +70,47 @@ endif
 
 all:           $(BIN) $(SBIN) $(USRBIN)
 
+#%: %.o
+#      $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+#%.o: %.c
+#      $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@
+
+init:          LDLIBS += $(INIT_SELIBS) $(STATIC)
 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) $(STATIC)
 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,8 +124,8 @@ clobber:    cleanobjs
 distclean:     clobber
 
 install:
-               $(INSTALL_EXEC) -d $(ROOT)/bin/ $(ROOT)/sbin/
-               $(INSTALL_EXEC) -d $(ROOT)/usr/bin/
+               $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/
+               $(INSTALL_DIR) $(ROOT)/usr/bin/
                for i in $(BIN); do \
                        $(STRIP) $$i ; \
                        $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \
@@ -149,11 +146,11 @@ install:
                if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
                        ln -sf last $(ROOT)/usr/bin/lastb; \
                fi
-               $(INSTALL_EXEC) -d $(ROOT)/usr/include/
+               $(INSTALL_DIR) $(ROOT)/usr/include/
                $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/
-               $(INSTALL_EXEC) -d $(ROOT)$(MANDIR)/man1/
-               $(INSTALL_EXEC) -d $(ROOT)$(MANDIR)/man5/
-               $(INSTALL_EXEC) -d $(ROOT)$(MANDIR)/man8/
+               $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/
+               $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/
+               $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/
                for i in $(MAN1); do \
                        $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man1/; \
                done