commit 0c008b65ee3dc4992087fb58aa798bc109c63b89
parent ae7aafc127d8439fad3250afe7b6f28d44690d39
Author: sin <sin@2f30.org>
Date:   Sun, 30 Nov 2014 12:09:34 +0000
Bring in the sbase Makefile updates to ubase
Diffstat:
| M | Makefile |  |  | 267 | +++++++++++++++++++++++++++++++++++++------------------------------------------ | 
| M | config.mk |  |  | 8 | +++++--- | 
2 files changed, 130 insertions(+), 145 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,11 +1,11 @@
 include config.mk
 
-.POSIX:
-.SUFFIXES: .c .o
+.SUFFIXES:
+.SUFFIXES: .o .c
 
 HDR = \
 	arg.h        \
-	config.def.h \
+	config.h     \
 	passwd.h     \
 	proc.h       \
 	queue.h      \
@@ -14,73 +14,76 @@ HDR = \
 	text.h       \
 	util.h
 
-LIB = \
-	libutil/agetcwd.o        \
-	libutil/agetline.o       \
-	libutil/apathmax.o       \
-	libutil/concat.o         \
-	libutil/ealloc.o         \
-	libutil/eprintf.o        \
-	libutil/estrtol.o        \
-	libutil/estrtoul.o       \
-	libutil/explicit_bzero.o \
-	libutil/passwd.o         \
-	libutil/proc.o           \
-	libutil/putword.o        \
-	libutil/recurse.o        \
-	libutil/strlcat.o        \
-	libutil/strlcpy.o        \
-	libutil/tty.o
-
-SRC = \
-	last.c              \
-	lastlog.c           \
-	chvt.c              \
-	clear.c             \
-	ctrlaltdel.c        \
-	dd.c                \
-	df.c                \
-	dmesg.c             \
-	eject.c             \
-	fallocate.c         \
-	free.c              \
-	freeramdisk.c       \
-	fsfreeze.c          \
-	getty.c             \
-	halt.c              \
-	hwclock.c           \
-	id.c                \
-	insmod.c            \
-	killall5.c          \
-	login.c             \
-	lsmod.c             \
-	lsusb.c             \
-	mesg.c              \
-	mknod.c             \
-	mkswap.c            \
-	mount.c             \
-	mountpoint.c        \
-	pagesize.c          \
-	passwd.c            \
-	pidof.c             \
-	pivot_root.c        \
-	ps.c                \
-	readahead.c         \
-	respawn.c           \
-	rmmod.c             \
-	stat.c              \
-	su.c                \
-	swaplabel.c         \
-	swapoff.c           \
-	swapon.c            \
-	switch_root.c       \
-	sysctl.c            \
-	truncate.c          \
-	umount.c            \
-	unshare.c           \
-	uptime.c            \
-	watch.c             \
-	who.c
+LIBUTIL = libutil.a
+LIBUTILSRC = \
+	libutil/agetcwd.c        \
+	libutil/agetline.c       \
+	libutil/apathmax.c       \
+	libutil/concat.c         \
+	libutil/ealloc.c         \
+	libutil/eprintf.c        \
+	libutil/estrtol.c        \
+	libutil/estrtoul.c       \
+	libutil/explicit_bzero.c \
+	libutil/passwd.c         \
+	libutil/proc.c           \
+	libutil/putword.c        \
+	libutil/recurse.c        \
+	libutil/strlcat.c        \
+	libutil/strlcpy.c        \
+	libutil/tty.c
+
+LIB = $(LIBUTIL)
+
+BIN = \
+	chvt              \
+	clear             \
+	ctrlaltdel        \
+	dd                \
+	df                \
+	dmesg             \
+	eject             \
+	fallocate         \
+	free              \
+	freeramdisk       \
+	fsfreeze          \
+	getty             \
+	halt              \
+	hwclock           \
+	id                \
+	insmod            \
+	killall5          \
+	last              \
+	lastlog           \
+	login             \
+	lsmod             \
+	lsusb             \
+	mesg              \
+	mknod             \
+	mkswap            \
+	mount             \
+	mountpoint        \
+	pagesize          \
+	passwd            \
+	pidof             \
+	pivot_root        \
+	ps                \
+	readahead         \
+	respawn           \
+	rmmod             \
+	stat              \
+	su                \
+	swaplabel         \
+	swapoff           \
+	swapon            \
+	switch_root       \
+	sysctl            \
+	truncate          \
+	umount            \
+	unshare           \
+	uptime            \
+	watch             \
+	who
 
 MAN1 = \
 	chvt.1              \
@@ -133,93 +136,73 @@ MAN8 = \
 	sysctl.8            \
 	umount.8
 
-OBJ = $(SRC:.c=.o) $(LIB)
-BIN = $(SRC:.c=) lastb
+LIBUTILOBJ = $(LIBUTILSRC:.c=.o)
+OBJ = $(BIN:=.o) $(LIBUTILOBJ)
+SRC = $(BIN:=.c)
 
-all: options binlib
+all: $(BIN)
 
-options:
-	@echo ubase build options:
-	@echo "CFLAGS   = $(CFLAGS)"
-	@echo "LDFLAGS  = $(LDFLAGS)"
-	@echo "CC       = $(CC)"
+$(BIN): $(LIB)
 
-binlib: libutil.a
-	$(MAKE) bin
-
-bin: $(BIN)
-
-$(OBJ): config.h util.h config.mk
+$(OBJ): $(HDR) config.mk
 
 config.h:
-	@echo creating $@ from config.def.h
-	@cp config.def.h $@
+	cp config.def.h $@
 
 .o:
-	@echo LD $@
-	@$(LD) -o $@ $< libutil.a $(LDFLAGS)
+	$(LD) $(LDFLAGS) -o $@ $< $(LIB)
 
 .c.o:
-	@echo CC $<
-	@$(CC) -c -o $@ $< $(CFLAGS)
+	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 
-libutil.a: $(LIB)
-	@echo AR $@
-	@$(AR) -r -c $@ $?
-	@ranlib $@
-
-lastb: last
-	ln -f last lastb
+$(LIBUTIL): $(LIBUTILOBJ)
+	$(AR) -r -c $@ $?
+	$(RANLIB) $@
 
 install: all
-	@echo installing executables to $(DESTDIR)$(PREFIX)/bin
-	@mkdir -p $(DESTDIR)$(PREFIX)/bin
-	@cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
-	@cd $(DESTDIR)$(PREFIX)/bin && chmod 755 $(BIN)
-	@echo installing manual pages to $(DESTDIR)$(MANPREFIX)/man1
-	@mkdir -p $(DESTDIR)$(MANPREFIX)/man1
-	@for m in $(MAN1); do sed "s/VERSION/$(VERSION)/g" < "$$m" > $(DESTDIR)$(MANPREFIX)/man1/"$$m"; done
-	@echo installing manual pages to $(DESTDIR)$(MANPREFIX)/man8
-	@mkdir -p $(DESTDIR)$(MANPREFIX)/man8
-	@for m in $(MAN8); do sed "s/VERSION/$(VERSION)/g" < "$$m" > $(DESTDIR)$(MANPREFIX)/man8/"$$m"; done
-	@chmod 644 $(DESTDIR)$(MANPREFIX)/man1/$(MAN1)
-	@chmod 644 $(DESTDIR)$(MANPREFIX)/man8/$(MAN8)
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+	cd $(DESTDIR)$(PREFIX)/bin && chmod 755 $(BIN)
+	mkdir -p $(DESTDIR)$(MANPREFIX)/man1
+	for m in $(MAN1); do sed "s/VERSION/$(VERSION)/g" < "$$m" > $(DESTDIR)$(MANPREFIX)/man1/"$$m"; done
+	mkdir -p $(DESTDIR)$(MANPREFIX)/man8
+	for m in $(MAN8); do sed "s/VERSION/$(VERSION)/g" < "$$m" > $(DESTDIR)$(MANPREFIX)/man8/"$$m"; done
+	cd $(DESTDIR)$(MANPREFIX)/man1 && chmod 644 $(MAN1)
+	cd $(DESTDIR)$(MANPREFIX)/man8 && chmod 644 $(MAN8)
 
 uninstall:
-	@echo removing executables from $(DESTDIR)$(PREFIX)/bin
-	@cd $(DESTDIR)$(PREFIX)/bin && rm -f $(BIN)
-	@echo removing manual pages from $(DESTDIR)$(MANPREFIX)/man1
-	@cd $(DESTDIR)$(MANPREFIX)/man1 && rm -f $(MAN)
+	cd $(DESTDIR)$(PREFIX)/bin && rm -f $(BIN)
+	cd $(DESTDIR)$(MANPREFIX)/man1 && rm -f $(MAN1)
+	cd $(DESTDIR)$(MANPREFIX)/man8 && rm -f $(MAN8)
 
 dist: clean
-	@echo creating dist tarball
-	@mkdir -p ubase-$(VERSION)
-	@cp -r LICENSE Makefile config.mk TODO $(SRC) $(MAN) libutil $(HDR) ubase-$(VERSION)
-	@tar -cf ubase-$(VERSION).tar ubase-$(VERSION)
-	@gzip ubase-$(VERSION).tar
-	@rm -rf ubase-$(VERSION)
-
-ubase-box: config.h $(SRC) libutil.a
-	@echo creating box binary
-	@mkdir -p build
-	@cp $(HDR) build
-	@cp config.h build
-	@for f in $(SRC); do sed "s/^main(/`basename $$f .c`_&/" < $$f > build/$$f; done
-	@echo '#include <libgen.h>'  > build/$@.c
-	@echo '#include <stdio.h>'  >> build/$@.c
-	@echo '#include <stdlib.h>' >> build/$@.c
-	@echo '#include <string.h>' >> build/$@.c
-	@echo '#include "util.h"'   >> build/$@.c
-	@for f in $(SRC); do echo "int `basename $$f .c`_main(int, char **);" >> build/$@.c; done
-	@echo 'int main(int argc, char *argv[]) { char *s = basename(argv[0]); if(!strcmp(s,"ubase-box")) { argc--; argv++; s = basename(argv[0]); } if(0) ;' >> build/$@.c
-	@for f in $(SRC); do echo "else if(!strcmp(s, \"`basename $$f .c`\")) return `basename $$f .c`_main(argc, argv);" >> build/$@.c; done
-	@echo 'else {' >> build/$@.c
-	@for f in $(SRC); do echo "printf(\"`basename $$f .c`\"); putchar(' ');" >> build/$@.c; done
-	@echo "putchar(0xa); }; return 0; }" >> build/$@.c
-	@echo LD $@
-	@$(LD) -o $@ build/*.c libutil.a $(CFLAGS) $(LDFLAGS)
-	@rm -r build
+	mkdir -p ubase-$(VERSION)
+	cp -r LICENSE Makefile README TODO config.mk $(SRC) $(MAN1) $(MAN8) libutil $(HDR) config.def.h ubase-$(VERSION)
+	tar -cf ubase-$(VERSION).tar ubase-$(VERSION)
+	gzip ubase-$(VERSION).tar
+	rm -rf ubase-$(VERSION)
+
+ubase-box: $(LIB) $(SRC)
+	mkdir -p build
+	cp $(HDR) build
+	cp config.h build
+	for f in $(SRC); do sed "s/^main(/`basename $$f .c`_&/" < $$f > build/$$f; done
+	echo '#include <libgen.h>'  > build/$@.c
+	echo '#include <stdio.h>'  >> build/$@.c
+	echo '#include <stdlib.h>' >> build/$@.c
+	echo '#include <string.h>' >> build/$@.c
+	echo '#include "util.h"'   >> build/$@.c
+	for f in $(SRC); do echo "int `basename $$f .c`_main(int, char **);" >> build/$@.c; done
+	echo 'int main(int argc, char *argv[]) { char *s = basename(argv[0]); if(!strcmp(s,"ubase-box")) { argc--; argv++; s = basename(argv[0]); } if(0) ;' >> build/$@.c
+	for f in $(SRC); do echo "else if(!strcmp(s, \"`basename $$f .c`\")) return `basename $$f .c`_main(argc, argv);" >> build/$@.c; done
+	echo 'else {' >> build/$@.c
+	for f in $(SRC); do echo "printf(\"`basename $$f .c`\"); putchar(' ');" >> build/$@.c; done
+	echo "putchar(0xa); }; return 0; }" >> build/$@.c
+	$(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ build/*.c $(LIB)
+	rm -r build
 
 clean:
-	@echo cleaning
-	@rm -f $(BIN) $(OBJ) $(LIB) libutil.a ubase-box
+	rm -f $(BIN) $(OBJ) $(LIB) ubase-box ubase-$(VERSION).tar.gz
+
+.PHONY:
+	all install uninstall dist ubase-box clean
diff --git a/config.mk b/config.mk
@@ -5,9 +5,11 @@ VERSION = 0.1
 PREFIX = /usr/local
 MANPREFIX = $(PREFIX)/share/man
 
-#CC = gcc
-#CC = musl-gcc
+CC = cc
 LD = $(CC)
+AR = ar
+RANLIB = ranlib
+
 CPPFLAGS = -D_XOPEN_SOURCE -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
-CFLAGS   = -std=c99 -Wall -Wextra $(CPPFLAGS)
+CFLAGS   = -std=c99 -Wall -Wextra
 LDFLAGS  = -s -lcrypt # -static