From 969482a848c1bd44284e80d1426a72c046f8d0f0 Mon Sep 17 00:00:00 2001 From: Evan Gates Date: Wed, 7 Sep 2016 16:03:28 -0700 Subject: [PATCH] Lots of makefile changes Specify dependencies correctly to allow parallel builds with -j. Previously the makefiles relied upon sequential execution in order to ensure prerequisites were built first. The new dependencies are done on a per package level and a per directory level. For example parts of the parted package depend on parts of the e2fsprogs package. Instead of listing the exact dependencies and recipes in the parted makefile, list e2fsprog as a prerequisite for parted in the bin/stali.mk. While this isn't as exact, and means that you can't build parted directly from its directory, it sucks much less to implement and puts dependencies in a more central location and makes them easier to read and add to. Using guard files to protect against redundant recipe execution. In some instances more than one target is built by a single execution of a recipe. For example, the awk package uses yacc to create both ytab.h and ytab.c from awkgram.y. However when doing a parallel build the recipe would be executed twice in parallel, once to create ytab.h and once to create ytab.c. In order to avoid this an intermediate rule is used. The rule could be PHONY, but then it would run every time instead of only when the grammar is updated. Instead the intermediate rule, called _ytab, touches a file called _ytab so we have a modification time to compare against. I used the convention of guard files begining with an underscore. --- bin/abduco/stali.mk | 5 ++-- bin/curl/src/stali.mk | 2 +- bin/curl/stali.mk | 2 ++ bin/dvtm/stali.mk | 7 +++--- bin/e2fsprogs/debugfs/stali.mk | 15 +++++++++--- bin/e2fsprogs/e2fsck/stali.mk | 2 +- bin/e2fsprogs/intl/stali.mk | 4 +-- bin/e2fsprogs/lib/blkid/stali.mk | 5 ++-- bin/e2fsprogs/lib/e2p/stali.mk | 1 - bin/e2fsprogs/lib/et/stali.mk | 5 ++-- bin/e2fsprogs/lib/ext2fs/stali.mk | 10 +++++--- bin/e2fsprogs/lib/ss/stali.mk | 7 ++++-- bin/e2fsprogs/lib/support/stali.mk | 8 +++--- bin/e2fsprogs/lib/uuid/stali.mk | 5 ++-- bin/e2fsprogs/misc/stali.mk | 2 +- bin/e2fsprogs/resize/stali.mk | 3 +-- bin/e2fsprogs/stali.mk | 16 +++++++++--- bin/e2fsprogs/util/stali.mk | 33 ++++++++++++------------- bin/git/stali.mk | 9 ++++--- bin/gzip/lib/stali.mk | 8 +++--- bin/gzip/stali.mk | 42 ++++++++------------------------ bin/hbase/_install/stali.mk | 2 -- bin/hbase/awk/awkgram.y | 1 + bin/hbase/awk/stali.mk | 16 ++++++------ bin/hbase/bc/stali.mk | 13 ++++------ bin/hbase/dc/stali.mk | 2 -- bin/hbase/diff/stali.mk | 5 ++-- bin/hbase/fmt/stali.mk | 2 -- bin/hbase/hd/stali.mk | 2 -- bin/hbase/lex/stali.mk | 11 ++++----- bin/hbase/libcommon/stali.mk | 11 +++++---- bin/hbase/libuxre/stali.mk | 2 -- bin/hbase/patch/stali.mk | 2 -- bin/hbase/pgrep/stali.mk | 3 --- bin/hbase/stali.mk | 11 ++++++--- bin/hbase/stty/stali.mk | 2 -- bin/hbase/yacc/stali.mk | 17 +++---------- bin/iproute2/ip/stali.mk | 2 +- bin/iproute2/stali.mk | 2 ++ bin/kbd/src/libkeymap/stali.mk | 13 +++++++--- bin/kbd/src/stali.mk | 2 +- bin/kbd/stali.mk | 2 ++ bin/libarchive/cpio/stali.mk | 3 +-- bin/libarchive/stali.mk | 6 +++-- bin/libarchive/tar/stali.mk | 3 +-- bin/parted/lib/stali.mk | 8 +++--- bin/parted/parted/stali.mk | 3 +-- bin/parted/stali.mk | 2 ++ bin/rc/stali.mk | 1 - bin/sbase/stali.mk | 7 ++++-- bin/sinit/stali.mk | 4 +-- bin/smdev/stali.mk | 3 +-- bin/ssh/stali.mk | 12 +++++---- bin/stali.mk | 2 ++ bin/vis/stali.mk | 13 +++------- config.mk | 50 ++++++++++++++++++++------------------ etc/stali.mk | 1 - lib/ncurses/ncurses/stali.mk | 46 ++++++----------------------------- lib/stali.mk | 2 ++ mk/bin.mk | 24 ++++++++++++------ mk/dir.mk | 24 ++++-------------- mk/etc.mk | 8 +++--- mk/lib.mk | 18 ++++++++++---- stali.mk | 4 +-- 64 files changed, 253 insertions(+), 305 deletions(-) diff --git a/bin/abduco/stali.mk b/bin/abduco/stali.mk index d7c28aa..075680f 100644 --- a/bin/abduco/stali.mk +++ b/bin/abduco/stali.mk @@ -7,11 +7,10 @@ CFLAGS += -std=c99 -pedantic -Wall -DVERSION=\"${VERSION}\" -DNDEBUG CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 OBJS = abduco.o BIN = abduco -CLEAN_FILES = config.h +DEPS = config.h +CLEAN_FILES = $(DEPS) include $(ROOT)/mk/bin.mk -deps: config.h - config.h: cp config.def.h config.h diff --git a/bin/curl/src/stali.mk b/bin/curl/src/stali.mk index 851035b..86a0e38 100644 --- a/bin/curl/src/stali.mk +++ b/bin/curl/src/stali.mk @@ -50,7 +50,7 @@ OBJS = tool_xattr.o\ CLEAN_FILES = tool_hugehelp.c CPPFLAGS += -DHAVE_CONFIG_H -DHAVE_FSETXATTR CFLAGS = -I../lib -I../include -I$(ROOT)/lib/zlib -LDFLAGS += ../lib/libcurl.a $(ROOT)/lib/zlib/libz.a $(ROOT)/lib/libressl/ssl/libssl.a $(ROOT)/lib/libressl/crypto/libcrypto.a +LIBS = ../lib/libcurl.a $(ROOT)/lib/zlib/libz.a $(ROOT)/lib/libressl/ssl/libssl.a $(ROOT)/lib/libressl/crypto/libcrypto.a include $(ROOT)/mk/bin.mk diff --git a/bin/curl/stali.mk b/bin/curl/stali.mk index 53bbfa2..25c4ddd 100644 --- a/bin/curl/stali.mk +++ b/bin/curl/stali.mk @@ -4,3 +4,5 @@ SUBDIRS = lib\ src include $(ROOT)/mk/dir.mk + +src: lib diff --git a/bin/dvtm/stali.mk b/bin/dvtm/stali.mk index 8067fbb..c3302e6 100644 --- a/bin/dvtm/stali.mk +++ b/bin/dvtm/stali.mk @@ -7,12 +7,11 @@ CFLAGS += -I. -I$(ROOT)/lib/ncurses/include -std=c99 -Wall -DVERSION=\"${VERSION CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 OBJS = dvtm.o vt.o BIN = dvtm -LDFLAGS += $(ROOT)/lib/ncurses/libncurses.a -CLEAN_FILES = config.h +LIBS = $(ROOT)/lib/ncurses/libncurses.a +DEPS = config.h +CLEAN_FILES = $(DEPS) include $(ROOT)/mk/bin.mk -deps: config.h - config.h: cp config.def.h config.h diff --git a/bin/e2fsprogs/debugfs/stali.mk b/bin/e2fsprogs/debugfs/stali.mk index 7891d2f..6a373b1 100644 --- a/bin/e2fsprogs/debugfs/stali.mk +++ b/bin/e2fsprogs/debugfs/stali.mk @@ -7,10 +7,11 @@ OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \ lsdel.o dump.o set_fields.o logdump.o htree.o unused.o e2freefrag.o \ filefrag.o extent_cmds.o extent_inode.o zap.o create_inode.o \ quota.o xattrs.o journal.o revoke.o recovery.o do_journal.o -CLEAN_FILES = extent_cmds.c extent_cmds.h debug_cmds.c debug_cmds.h +CLEAN_FILES = extent_cmds.c extent_cmds.h debug_cmds.c debug_cmds.h _extent_cmds _debug_cmds CPPFLAGS = -DHAVE_CONFIG_H -DDEBUGFS CFLAGS = -I. -I../lib -I../intl -I../e2fsck -LDFLAGS += ../lib/libsupport.a ../lib/libext2fs.a ../lib/libe2p.a ../lib/libss.a -ldl ../lib/libcom_err.a ../lib/libblkid.a ../lib/libuuid.a ../lib/libuuid.a +LDFLAGS += -ldl +LIBS = ../lib/libsupport.a ../lib/libext2fs.a ../lib/libe2p.a ../lib/libss.a ../lib/libcom_err.a ../lib/libblkid.a ../lib/libuuid.a ../lib/libuuid.a include $(ROOT)/mk/bin.mk @@ -26,8 +27,14 @@ revoke.o: ../e2fsck/revoke.c recovery.o: ../e2fsck/recovery.c @$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ -extent_cmds.c extent_cmds.h: extent_cmds.ct +extent_cmds.c extent_cmds.h: _extent_cmds ; + +_extent_cmds: extent_cmds.ct @DIR=../lib/ss ../lib/ss/mk_cmds extent_cmds.ct + @touch $@ + +debug_cmds.c debug_cmds.h: _debug_cmds ; -debug_cmds.c debug_cmds.h: debug_cmds.ct +_debug_cmds: debug_cmds.ct @DIR=../lib/ss ../lib/ss/mk_cmds debug_cmds.ct + @touch $@ diff --git a/bin/e2fsprogs/e2fsck/stali.mk b/bin/e2fsprogs/e2fsck/stali.mk index 4730142..ebda0af 100644 --- a/bin/e2fsprogs/e2fsck/stali.mk +++ b/bin/e2fsprogs/e2fsck/stali.mk @@ -12,7 +12,7 @@ OBJS= unix.o e2fsck.o super.o pass1.o pass1b.o pass2.o \ CLEAN_FILES = CPPFLAGS = -DHAVE_CONFIG_H CFLAGS = -I../lib -I../intl -LDFLAGS += ../lib/libsupport.a ../lib/libext2fs.a ../lib/libcom_err.a ../lib/libblkid.a ../lib/libuuid.a ../lib/libuuid.a ../intl/libintl.a ../lib/libe2p.a +LIBS = ../lib/libsupport.a ../lib/libext2fs.a ../lib/libcom_err.a ../lib/libblkid.a ../lib/libuuid.a ../lib/libuuid.a ../intl/libintl.a ../lib/libe2p.a include $(ROOT)/mk/bin.mk diff --git a/bin/e2fsprogs/intl/stali.mk b/bin/e2fsprogs/intl/stali.mk index a7e1c8e..cf4b0f9 100644 --- a/bin/e2fsprogs/intl/stali.mk +++ b/bin/e2fsprogs/intl/stali.mk @@ -27,13 +27,13 @@ OBJS = \ printf.o \ osdep.o \ intl-compat.o -CLEAN_FILES = libgnuintl.h +DEPS = libgnuintl.h +CLEAN_FILES = $(DEPS) CPPFLAGS += -DLOCALE_ALIAS_PATH=\"$(PREFIX)share/locale\" -DLIBDIR=\"$(PREFIX)lib\" -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(PREFIX)lib\" -DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H CFLAGS += -I. -I.. -I../lib include $(ROOT)/mk/lib.mk -deps: libgnuintl.h libgnuintl.h: libgnuintl.h.in @sed -e 's,@''HAVE_POSIX_PRINTF''@,1,g' \ diff --git a/bin/e2fsprogs/lib/blkid/stali.mk b/bin/e2fsprogs/lib/blkid/stali.mk index 65ec59e..596def6 100644 --- a/bin/e2fsprogs/lib/blkid/stali.mk +++ b/bin/e2fsprogs/lib/blkid/stali.mk @@ -6,13 +6,12 @@ LIB = ../libblkid.a LIB_INST = OBJS= cache.o dev.o devname.o devno.o getsize.o llseek.o probe.o \ read.o resolve.o save.o tag.o version.o -CLEAN_FILES = blkid.h blkid_types.h +DEPS = blkid.h blkid_types.h +CLEAN_FILES = $(DEPS) CFLAGS += -I../ include $(ROOT)/mk/lib.mk -deps: blkid.h blkid_types.h - blkid.h: blkid.h.in @cp blkid.h.in blkid.h diff --git a/bin/e2fsprogs/lib/e2p/stali.mk b/bin/e2fsprogs/lib/e2p/stali.mk index 1cf3003..6649c84 100644 --- a/bin/e2fsprogs/lib/e2p/stali.mk +++ b/bin/e2fsprogs/lib/e2p/stali.mk @@ -12,4 +12,3 @@ CLEAN_FILES = CFLAGS += -I../ include $(ROOT)/mk/lib.mk - diff --git a/bin/e2fsprogs/lib/et/stali.mk b/bin/e2fsprogs/lib/et/stali.mk index a368cfa..76aa0aa 100644 --- a/bin/e2fsprogs/lib/et/stali.mk +++ b/bin/e2fsprogs/lib/et/stali.mk @@ -5,13 +5,12 @@ include $(ROOT)/config.mk LIB = ../libcom_err.a LIB_INST = OBJS= error_message.o et_name.o init_et.o com_err.o com_right.o -CLEAN_FILES = compile_et ../config.h ../dirpaths.h +DEPS = ../dirpaths.h ../config.h compile_et +CLEAN_FILES = $(DEPS) CFLAGS += -I../ include $(ROOT)/mk/lib.mk -deps: ../dirpaths.h ../config.h compile_et - ../dirpaths.h: @cp ../dirpaths.h.stali ../dirpaths.h diff --git a/bin/e2fsprogs/lib/ext2fs/stali.mk b/bin/e2fsprogs/lib/ext2fs/stali.mk index ddc598b..bb92be4 100644 --- a/bin/e2fsprogs/lib/ext2fs/stali.mk +++ b/bin/e2fsprogs/lib/ext2fs/stali.mk @@ -85,19 +85,21 @@ OBJS= $(DEBUGFS_LIB_OBJS) $(RESIZE_LIB_OBJS) $(E2IMAGE_LIB_OBJS) \ valid_blk.o \ version.o \ rbtree.o -CLEAN_FILES = ext2_err.et ext2_types.h ext2_err.c ext2_err.h +DEPS = ext2_err.et ext2_types.h crc32c_table.h ext2_err.c ext2_err.h +CLEAN_FILES = ext2_err.et ext2_types.h ext2_err.c ext2_err.h _ext2_err CFLAGS = -I. -I../ -I../../intl -DHAVE_CONFIG_H CPPFLAGS = include $(ROOT)/mk/lib.mk -deps: ext2_err.et ext2_types.h crc32c_table.h ext2_err.c ext2_err.h - ext2_err.et: ext2_err.et.in @../../util/subst -f ../../util/subst.conf ext2_err.et.in ext2_err.et ext2_types.h: ext2_types.h.in @cp ext2_types.h.in ext2_types.h -ext2_err.c ext2_err.h: ext2_err.et +ext2_err.c ext2_err.h: _ext2_err ; + +_ext2_err: ext2_err.et @DIR=../et ../et/compile_et ext2_err.et + @touch $@ diff --git a/bin/e2fsprogs/lib/ss/stali.mk b/bin/e2fsprogs/lib/ss/stali.mk index 025c539..0f4e414 100644 --- a/bin/e2fsprogs/lib/ss/stali.mk +++ b/bin/e2fsprogs/lib/ss/stali.mk @@ -10,13 +10,16 @@ OBJS= ss_err.o \ execute_cmd.o listen.o parse.o error.o prompt.o \ request_tbl.o list_rqs.o pager.o requests.o \ data.o get_readline.o -CLEAN_FILES = ss_err.c ss_err.h std_rqs.c mk_cmds +CLEAN_FILES = ss_err.c ss_err.h std_rqs.c mk_cmds _ss_err CFLAGS += -I../ include $(ROOT)/mk/lib.mk -ss_err.c ss_err.h: ss_err.et +ss_err.c ss_err.h: _ss_err ; + +_ss_err: ss_err.et @DIR=../et ../et/compile_et ss_err.et + @touch $@ std_rqs.c: std_rqs.ct mk_cmds @DIR=. ./mk_cmds std_rqs.ct diff --git a/bin/e2fsprogs/lib/support/stali.mk b/bin/e2fsprogs/lib/support/stali.mk index 748572b..77c116b 100644 --- a/bin/e2fsprogs/lib/support/stali.mk +++ b/bin/e2fsprogs/lib/support/stali.mk @@ -13,12 +13,14 @@ OBJS= mkquota.o \ quotaio_v2.o \ quotaio_tree.o \ dict.o -CLEAN_FILES = prof_err.c prof_err.h +DEPS = prof_err.c prof_err.h +CLEAN_FILES = $(DEPS) _prof_err CFLAGS += -I../ include $(ROOT)/mk/lib.mk -deps: prof_err.c prof_err.h +prof_err.c prof_err.h: _prof_err ; -prof_err.c prof_err.h: prof_err.et +_prof_err: prof_err.et @DIR=../et ../et/compile_et prof_err.et + @touch $@ diff --git a/bin/e2fsprogs/lib/uuid/stali.mk b/bin/e2fsprogs/lib/uuid/stali.mk index 8ea6a82..ef924d4 100644 --- a/bin/e2fsprogs/lib/uuid/stali.mk +++ b/bin/e2fsprogs/lib/uuid/stali.mk @@ -14,12 +14,11 @@ OBJS= clear.o \ unpack.o \ unparse.o \ uuid_time.o -CLEAN_FILES = uuid.h +DEPS = uuid.h +CLEAN_FILES = $(DEPS) CFLAGS += -I../ include $(ROOT)/mk/lib.mk -deps: uuid.h - uuid.h: uuid.h.in @cp uuid.h.in uuid.h diff --git a/bin/e2fsprogs/misc/stali.mk b/bin/e2fsprogs/misc/stali.mk index 74c42e4..f00e88f 100644 --- a/bin/e2fsprogs/misc/stali.mk +++ b/bin/e2fsprogs/misc/stali.mk @@ -27,7 +27,7 @@ MAN8_INFILES = badblocks.8.in blkid.8.in dumpe2fs.8.in e2freefrag.8.in e2image.8 e4defrag.8.in filefrag.8.in fsck.8.in logsave.8.in mke2fs.8.in mklost+found.8.in tune2fs.8.in uuidd.8.in MAN8_FILES = badblocks.8 blkid.8 dumpe2fs.8 e2freefrag.8 e2image.8 e2undo.8 e4crypt.8\ e4defrag.8 filefrag.8 fsck.8 logsave.8 mke2fs.8 mklost+found.8 tune2fs.8 uuidd.8 -CLEAN_FILES = default_profile.c $(BINS) +CLEAN_FILES = default_profile.c mke2fs.conf $(BINS) CPPFLAGS = -DHAVE_CONFIG_H CFLAGS = -I. -I../lib -I../intl LDFLAGS += ../lib/libext2fs.a ../lib/libcom_err.a ../lib/libsupport.a ../lib/libblkid.a ../lib/libuuid.a\ diff --git a/bin/e2fsprogs/resize/stali.mk b/bin/e2fsprogs/resize/stali.mk index 7ec7b50..f4ab827 100644 --- a/bin/e2fsprogs/resize/stali.mk +++ b/bin/e2fsprogs/resize/stali.mk @@ -7,7 +7,6 @@ OBJS= extent.o resize2fs.o main.o online.o resource_track.o sim_progress.o CLEAN_FILES = CPPFLAGS = -DHAVE_CONFIG_H CFLAGS = -I. -I../lib -I../intl -LDFLAGS += ../lib/libe2p.a ../lib/libext2fs.a ../lib/libcom_err.a ../intl/libintl.a +LIBS = ../lib/libe2p.a ../lib/libext2fs.a ../lib/libcom_err.a ../intl/libintl.a include $(ROOT)/mk/bin.mk - diff --git a/bin/e2fsprogs/stali.mk b/bin/e2fsprogs/stali.mk index 41fea7c..13f84e0 100644 --- a/bin/e2fsprogs/stali.mk +++ b/bin/e2fsprogs/stali.mk @@ -1,13 +1,15 @@ ROOT=../.. -SUBDIRS = util\ - lib/et\ +LIBDIRS = lib/et\ lib/ss\ lib/ext2fs\ lib/e2p\ lib/uuid\ lib/blkid\ - lib/support\ + lib/support + +SUBDIRS = util\ + $(LIBDIRS)\ intl\ e2fsck\ debugfs\ @@ -15,3 +17,11 @@ SUBDIRS = util\ resize include $(ROOT)/mk/dir.mk + +lib/et lib/ext2fs lib/ss misc: util + +debugfs e2fsck intl misc resize: $(LIBDIRS) + +# TODO: move dependencies into this file instead of +# making everything depend on lib/et +lib/ss lib/ext2fs lib/e2p lib/uuid lib/blkid lib/support: lib/et diff --git a/bin/e2fsprogs/util/stali.mk b/bin/e2fsprogs/util/stali.mk index f023755..8817e1f 100644 --- a/bin/e2fsprogs/util/stali.mk +++ b/bin/e2fsprogs/util/stali.mk @@ -2,20 +2,21 @@ ROOT=../../.. include $(ROOT)/config.mk -CFLAGS = $(HOSTCFLAGS) BINS = subst symlinks -CLEAN_FILES = *.o $(BINS) dirpaths.h +OBJS = $(BINS:=.o) +DEPS = dirpaths.h subst.conf +CLEAN_FILES = $(DEPS) $(BINS) -all: options deps $(BINS) +all: options $(BINS) +$(BINS): $(OBJS) +$(OBJS): $(DEPS) options: @echo build options: - @echo "CFLAGS = $(CFLAGS)" - @echo "CPPFLAGS = $(CPPFLAGS)" - @echo "LDFLAGS = $(LDFLAGS)" - @echo "CC = $(CC)" - -deps: dirpaths.h subst.conf + @echo "HOSTCFLAGS = $(HOSTCFLAGS)" + @echo "HOSTCPPFLAGS = $(HOSTCPPFLAGS)" + @echo "HOSTLDFLAGS = $(HOSTLDFLAGS)" + @echo "HOSTCC = $(HOSTCC)" dirpaths.h: @echo "/* fake dirpaths.h for config.h */" > dirpaths.h @@ -24,16 +25,12 @@ subst.conf: @cp subst.conf.stali subst.conf .c.o: - @echo CC $< - @$(HOSTCC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ - -subst: subst.o - @echo LD $@ - @$(HOSTCC) -o $@ subst.o $(LDFLAGS) + @echo HOSTCC $< + @$(HOSTCC) $(HOSTCFLAGS) $(HOSTCPPFLAGS) -c $< -o $@ -symlinks: symlinks.o - @echo LD $@ - @$(HOSTCC) -o $@ symlinks.o $(LDFLAGS) +.o: + @echo HOSTLD $< + @$(HOSTCC) -o $@ $< $(HOSTLDFLAGS) install: diff --git a/bin/git/stali.mk b/bin/git/stali.mk index dbc797c..3f59b28 100644 --- a/bin/git/stali.mk +++ b/bin/git/stali.mk @@ -335,9 +335,12 @@ SCRIPTS_SH = git-bisect.sh\ git-submodule.sh\ git-web--browse.sh +DEPS = $(SCRIPTS_SH) common-cmds.h CLEAN_FILES = common-cmds.h -all: options deps $(BIN) +all: options $(BIN) + +$(OBJS): $(DEPS) options: @echo $(BIN) build options: @@ -350,8 +353,6 @@ options: @echo CC $< @$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ -deps: $(SCRIPTS_SH) common-cmds.h - common-cmds.h: generate-cmdlist.sh command-list.txt common-cmds.h: $(wildcard Documentation/git-*.txt) @@ -425,4 +426,4 @@ uninstall: @cd $(DESTDIR)$(PREFIX)/bin && rm -f git-remote-https git-remote-ftp git-remote-ftps @rm -rf $(DESTDIR)$(PREFIX)/share/git-core -.PHONY: deps options clean install uninstall +.PHONY: options clean install uninstall diff --git a/bin/gzip/lib/stali.mk b/bin/gzip/lib/stali.mk index 3d9a5ed..780a829 100644 --- a/bin/gzip/lib/stali.mk +++ b/bin/gzip/lib/stali.mk @@ -63,7 +63,7 @@ OBJS = stripslash.o\ fflush.o\ fseek.o\ xalloc-die.o -GEN = alloca.h\ +DEPS = alloca.h\ configmake.h\ c++defs.h\ arg-nonnull.h\ @@ -83,12 +83,10 @@ GEN = alloca.h\ wchar.h\ wctype.h -CLEAN_FILES = $(GEN) +CLEAN_FILES = $(DEPS) include $(ROOT)/mk/lib.mk -deps: $(GEN) - -$(GEN): +$(DEPS): @echo GEN $@ @cp $@.stali $@ diff --git a/bin/gzip/stali.mk b/bin/gzip/stali.mk index 3f2151b..2287d12 100644 --- a/bin/gzip/stali.mk +++ b/bin/gzip/stali.mk @@ -4,12 +4,10 @@ include $(ROOT)/config.mk CFLAGS += -I. -Ilib CPPFLAGS += -LIBGZIP = lib/libgzip.a -LIB = $(LIBGZIP) - +LIB = lib/libgzip.a BIN = gzip # gunzip zcat zcmp zdiff zegrep zforce zgrep zless zmore znew -OBJ = bits.o\ +OBJS = bits.o\ deflate.o\ gzip.o\ inflate.o\ @@ -23,41 +21,21 @@ OBJ = bits.o\ version.o\ zip.o -GZIP_OBJS = bits.o\ - deflate.o\ - gzip.o\ - inflate.o\ - lzw.o\ - trees.o\ - unlzh.o\ - unlzw.o\ - unpack.o\ - unzip.o\ - util.o\ - zip.o\ - version.o +all: $(BIN) -all: $(LIB) $(OBJ) $(BIN) +$(OBJS): $(LIB) -$(LIBGZIP): - @cd lib; $(MAKE) -f stali.mk; +$(LIB): + @cd lib && $(MAKE) -f stali.mk -gzip: $(LIB) $(OBJ) +$(BIN): $(OBJS) $(LIB) @echo LD $@ - @$(LD) $(LDFLAGS) -o $@ $(GZIP_OBJS) $(LIB) lib/libgzip.a + @$(LD) $(LDFLAGS) -o $@ $^ .c.o: @echo CC $< @$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< -$(LIBCOMMON): $(LIBCOMMONOBJ) - @$(AR) rc $@ $? - @$(RANLIB) $@ - -$(LIBFONT): $(LIBFONTOBJ) - @$(AR) rc $@ $? - @$(RANLIB) $@ - install: all @mkdir -p $(DESTDIR)$(PREFIX)/bin @cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin @@ -72,8 +50,8 @@ uninstall: @cd $(DESTDIR)$(MANPREFIX)/man1 && rm -f $(BIN).1 clean: - rm -f $(BIN) $(OBJ) $(LIB) - @cd lib; $(MAKE) -f stali.mk clean; + rm -f $(BIN) $(OBJS) $(LIB) + @cd lib && $(MAKE) -f stali.mk clean; .PHONY: all install uninstall clean diff --git a/bin/hbase/_install/stali.mk b/bin/hbase/_install/stali.mk index 256e4ac..3647113 100644 --- a/bin/hbase/_install/stali.mk +++ b/bin/hbase/_install/stali.mk @@ -7,8 +7,6 @@ OBJS = install.o include $(ROOT)/mk/bin.mk -deps: - postinst: @mv $(DESTDIR)$(PREFIX)/bin/$(BIN) $(DESTDIR)$(PREFIX)/bin/install @mv $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1 $(DESTDIR)$(MANPREFIX)/man1/install.1 diff --git a/bin/hbase/awk/awkgram.y b/bin/hbase/awk/awkgram.y index 4eb0310..053940d 100644 --- a/bin/hbase/awk/awkgram.y +++ b/bin/hbase/awk/awkgram.y @@ -27,6 +27,7 @@ THIS SOFTWARE. #include #include #include "awk.h" +#include void checkdup(Node *list, Cell *item); int yywrap(void) { return(1); } diff --git a/bin/hbase/awk/stali.mk b/bin/hbase/awk/stali.mk index 8eba108..930c15b 100644 --- a/bin/hbase/awk/stali.mk +++ b/bin/hbase/awk/stali.mk @@ -4,20 +4,20 @@ include $(ROOT)/config.mk BIN = awk OBJS = ytab.o lex.o b.o main.o parse.o proctab.o tran.o lib.o run.o -CLEAN_FILES = ytab.c ytab.h proctab.c gen/maketab +DEPS = ytab.h +CLEAN_FILES = _ytab ytab.c ytab.h proctab.c gen/maketab LDFLAGS += -lm include $(ROOT)/mk/bin.mk -deps: ytab.c proctab.c +ytab.h ytab.c: _ytab ; -ytab.c: ytab - -ytab: awkgram.y - @echo YACC -d awkgram.y - @$(YACC) -d awkgram.y - mv y.tab.c ytab.c +_ytab: awkgram.y + @echo YACC -d $? + @$(YACC) -d $? mv y.tab.h ytab.h + mv y.tab.c ytab.c + touch $@ proctab.c: gen/maketab @echo MAKETAB proctab.c diff --git a/bin/hbase/bc/stali.mk b/bin/hbase/bc/stali.mk index 1b78e3a..e6b71a5 100644 --- a/bin/hbase/bc/stali.mk +++ b/bin/hbase/bc/stali.mk @@ -2,20 +2,17 @@ ROOT=../../.. include $(ROOT)/config.mk -CFLAGS += -I../libcommon -I../libuxre -DUXRE -DDC=\"$(PREFIX)/bin/dc\" -DLIBB=\"$(PREFIX)/bin/bc-lib.b\" -LDFLAGS += -L../libcommon -lcommon -L../libuxre -luxre +CFLAGS += -DDC=\"$(PREFIX)/bin/dc\" -DLIBB=\"$(PREFIX)/bin/bc-lib.b\" BIN = bc OBJS = bc.o -CLEAN_FILES = bc.c y.tab.c y.tab.h +CLEAN_FILES = bc.c include $(ROOT)/mk/bin.mk -deps: - bc.c: bc.y - @echo YACC -d bc.y - @$(YACC) -d bc.y - @sed -f yyval.sed $@ + @echo YACC bc.y + @$(YACC) bc.y + @sed -f yyval.sed y.tab.c >$@ @rm y.tab.c postinst: diff --git a/bin/hbase/dc/stali.mk b/bin/hbase/dc/stali.mk index 349e380..b82889b 100644 --- a/bin/hbase/dc/stali.mk +++ b/bin/hbase/dc/stali.mk @@ -9,5 +9,3 @@ BIN = dc OBJS = dc.o include $(ROOT)/mk/bin.mk - -deps: diff --git a/bin/hbase/diff/stali.mk b/bin/hbase/diff/stali.mk index 36fdaca..a259604 100644 --- a/bin/hbase/diff/stali.mk +++ b/bin/hbase/diff/stali.mk @@ -6,13 +6,12 @@ CPPFLAGS += -DDIFFH=\"$(PREFIX)/bin/diffh\" CFLAGS += -I../libcommon LDFLAGS += -L../libcommon -lcommon BIN = diff +DEPS = diffh OBJS = diff.o diffdir.o diffreg.o diffver.o -CLEAN_FILES = diffh diff.o +CLEAN_FILES = diffh diffh.o include $(ROOT)/mk/bin.mk -deps: diffh - diffh: diffh.o @echo LD $@ @echo $(CC) -o $@ diffh.o $(LDFLAGS) diff --git a/bin/hbase/fmt/stali.mk b/bin/hbase/fmt/stali.mk index 658cf94..4eee250 100644 --- a/bin/hbase/fmt/stali.mk +++ b/bin/hbase/fmt/stali.mk @@ -8,5 +8,3 @@ BIN = fmt OBJS = fmt.o include $(ROOT)/mk/bin.mk - -deps: diff --git a/bin/hbase/hd/stali.mk b/bin/hbase/hd/stali.mk index 079130b..62df734 100644 --- a/bin/hbase/hd/stali.mk +++ b/bin/hbase/hd/stali.mk @@ -8,5 +8,3 @@ BIN = hd OBJS = hd.o include $(ROOT)/mk/bin.mk - -deps: diff --git a/bin/hbase/lex/stali.mk b/bin/hbase/lex/stali.mk index de91aef..d93ae56 100644 --- a/bin/hbase/lex/stali.mk +++ b/bin/hbase/lex/stali.mk @@ -7,23 +7,22 @@ LDFLAGS += -L. -llex BIN = lex OBJS = main.o sub1.o sub2.o sub3.o header.o wcio.o parser.o getopt.o lsearch.o LOBJS = allprint.o libmain.o reject.o yyless.o yywrap.o allprint_w.o reject_w.o yyless_w.o reject_e.o yyless_e.o -CLEAN_FILES = parser.c $(LOBJS) liblex.a +DEPS = liblex.a parser.c +CLEAN_FILES = $(DEPS) $(LOBJS) WFLAGS = -DEUC -DJLSLEX -DWOPTION EFLAGS = -DEUC -DJLSLEX -DEOPTION include $(ROOT)/mk/bin.mk -deps: liblex.a parser.c - liblex.a: $(LOBJS) @echo AR $@ @$(AR) cr $@ $(LOBJS) @$(RANLIB) $@ parser.c: parser.y - @echo YACC -d $< - @$(YACC) -d $< - mv y.tab.c parser.c + @echo YACC $< + @$(YACC) $< + @mv y.tab.c parser.c %_w.o: %.c @echo CC $@ diff --git a/bin/hbase/libcommon/stali.mk b/bin/hbase/libcommon/stali.mk index 2f70cb9..95ca8fe 100644 --- a/bin/hbase/libcommon/stali.mk +++ b/bin/hbase/libcommon/stali.mk @@ -8,15 +8,16 @@ OBJS = asciitype.o ib_alloc.o ib_close.o ib_free.o ib_getlin.o ib_getw.o \ getdir.o regexpr.o gmatch.o utmpx.o memalign.o pathconf.o \ sigset.o signal.o sigrelse.o sighold.o sigignore.o sigpause.o \ getopt.o pfmt.o vpfmt.o setlabel.o setuxlabel.o pfmt_label.o sysv3.o -CLEAN_FILES = alloca.h malloc.h utmpx.h +HEADERS = alloca.h malloc.h utmpx.h +DEPS = CHECK headers +CLEAN_FILES = $(DEPS) $(HEADERS) include $(ROOT)/mk/lib.mk -deps: headers - CHECK: CHECK.c @echo CC CHECK - $(CC) $(CFLAGS) $(CPPFLAGS) -E CHECK.c >CHECK + @$(CC) $(CFLAGS) $(CPPFLAGS) -E CHECK.c >CHECK headers: CHECK - @for i in alloca malloc utmpx; do rm -f $$i.h; if grep "$1_h[ ]*=[ ]*[^0][ ]*;" CHECK >/dev/null; then ln -s "_$$i.h" "$$i.h"; fi; done + @for f in $(HEADERS); do if grep -q "$${f%.h}_h[[:space:]]*=[[:space:]]*[^0][[:space:]]*;" CHECK; then ln -s "_$$f" "$$f"; fi; done + @touch $@ diff --git a/bin/hbase/libuxre/stali.mk b/bin/hbase/libuxre/stali.mk index f400675..533d3e3 100644 --- a/bin/hbase/libuxre/stali.mk +++ b/bin/hbase/libuxre/stali.mk @@ -8,8 +8,6 @@ CFLAGS += -I. include $(ROOT)/mk/lib.mk -deps: - _collelem.o: colldata.h re.h regex.h wcharm.h _collmult.o: colldata.h re.h regex.h wcharm.h bracket.o: colldata.h re.h regex.h wcharm.h diff --git a/bin/hbase/patch/stali.mk b/bin/hbase/patch/stali.mk index e01ca80..53eb3b9 100644 --- a/bin/hbase/patch/stali.mk +++ b/bin/hbase/patch/stali.mk @@ -8,5 +8,3 @@ BIN = patch OBJS = patch.o backupfile.o inp.o mkpath.o pch.o util.o include $(ROOT)/mk/bin.mk - -deps: diff --git a/bin/hbase/pgrep/stali.mk b/bin/hbase/pgrep/stali.mk index 30e8267..bd556cc 100644 --- a/bin/hbase/pgrep/stali.mk +++ b/bin/hbase/pgrep/stali.mk @@ -9,8 +9,6 @@ OBJS = pgrep.o include $(ROOT)/mk/bin.mk -deps: - postinst: @cd $(DESTDIR)$(PREFIX)/bin && ln -sf $(BIN) pkill @cd $(DESTDIR)$(MANPREFIX)/man1 && ln -sf $(BIN).1 pkill.1 @@ -18,4 +16,3 @@ postinst: postuninst: @rm -f $(DESTDIR)$(PREFIX)/bin/pkill @rm -f $(DESTDIR)$(MANPREFIX)/man1/pkill.1 - diff --git a/bin/hbase/stali.mk b/bin/hbase/stali.mk index 6223ac9..bec675c 100644 --- a/bin/hbase/stali.mk +++ b/bin/hbase/stali.mk @@ -1,8 +1,8 @@ ROOT=../.. +# NOTE: was nothing using libuxre? SUBDIRS =\ libcommon\ - libuxre\ yacc\ _install\ stty\ @@ -11,9 +11,12 @@ SUBDIRS =\ hd\ bc\ pgrep\ + diff\ lex -#patch\ -#diff\ -#dc\ include $(ROOT)/mk/dir.mk + +awk bc lex: yacc + +dc diff fmt hd pgrep stty: libcommon + diff --git a/bin/hbase/stty/stali.mk b/bin/hbase/stty/stali.mk index 4f8ac13..8d17d7a 100644 --- a/bin/hbase/stty/stali.mk +++ b/bin/hbase/stty/stali.mk @@ -9,5 +9,3 @@ BIN = stty OBJS = stty.o include $(ROOT)/mk/bin.mk - -deps: diff --git a/bin/hbase/yacc/stali.mk b/bin/hbase/yacc/stali.mk index c6c70ec..46beee9 100644 --- a/bin/hbase/yacc/stali.mk +++ b/bin/hbase/yacc/stali.mk @@ -7,7 +7,8 @@ LDFLAGS += -L. -ly BIN = yacc OBJS = y1.o y2.o y3.o y4.o y5.o getopt.o LOBJS = libmai.o libzer.o -CLEAN_FILES = $(LOBJS) liby.a +DEPS = liby.a /tmp/yaccpar +CLEAN_FILES = $(LOBJS) $(DEPS) CC = $(HOSTCC) AR = $(HOSTAR) RANLIB = $(HOSTRANLIB) @@ -15,24 +16,14 @@ CFLAGS = $(HOSTCFLAGS) include $(ROOT)/mk/bin.mk -deps: liby.a tmpyaccpar - liby.a: $(LOBJS) @echo AR $@ @$(AR) cr $@ $(LOBJS) @$(RANLIB) $@ -tmpyaccpar: +/tmp/yaccpar: yaccpar @echo copying yaccpar to /tmp - @cp -f yaccpar /tmp - -install: - -postinst: - -postuninst: - -uninstall: + @cp -f $^ $@ y1.o: dextern y2.o: dextern sgs.h diff --git a/bin/iproute2/ip/stali.mk b/bin/iproute2/ip/stali.mk index da66942..24594c0 100644 --- a/bin/iproute2/ip/stali.mk +++ b/bin/iproute2/ip/stali.mk @@ -16,7 +16,7 @@ OBJS = ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \ CLEAN_FILES = CPPFLAGS += -D_GNU_SOURCE -DHAVE_SETNS -D_LINUX_IN6_H CFLAGS += -I../include -LDFLAGS += ../lib/libiproute2.a +LIBS = ../lib/libiproute2.a include $(ROOT)/mk/bin.mk diff --git a/bin/iproute2/stali.mk b/bin/iproute2/stali.mk index 5bd220f..f0f5b3f 100644 --- a/bin/iproute2/stali.mk +++ b/bin/iproute2/stali.mk @@ -4,3 +4,5 @@ SUBDIRS = lib\ ip include $(ROOT)/mk/dir.mk + +ip: lib diff --git a/bin/kbd/src/libkeymap/stali.mk b/bin/kbd/src/libkeymap/stali.mk index a764b0c..ccb4eac 100644 --- a/bin/kbd/src/libkeymap/stali.mk +++ b/bin/kbd/src/libkeymap/stali.mk @@ -7,6 +7,7 @@ LOCALEDIR = $(DATADIR)/locale CFLAGS += -I. -I.. -g -O2 -Wall -Wextra -Wmissing-noreturn -Wdisabled-optimization -Wcast-align -Wshadow -Wmissing-format-attribute -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations CPPFLAGS += -DDATADIR=\"$(DATADIR)\" -DLOCALEDIR=\"$(LOCALEDIR)\" -D_BSD_SOURCE -U_GNU_SOURCE -D_FORTIFY_SOURCE=2 -funit-at-a-time LIB = libkeymap.a +DEPS = parser.h analyze.h parser.c analyze.c OBJS = analyze.o\ array.o\ common.o\ @@ -21,14 +22,18 @@ OBJS = analyze.o\ modifiers.o\ parser.o\ summary.o -CLEAN_FILES = parser.c analyze.c parser.h analyze.h +CLEAN_FILES = $(DEPS) _parser _analyze include $(ROOT)/mk/lib.mk -deps: parser.h analyze.h +parser.h parser.c: _parser ; -parser.h parser.c: +_parser: parser.y @$(SHELL) ../../config/ylwrap parser.y y.tab.c parser.c y.tab.h parser.h y.output parser.output -- bison -y + @touch $@ -analyze.h analyze.c: +analyze.h analyze.c: _analyze ; + +_analyze: analyze.l @$(SHELL) ../../config/ylwrap analyze.l lex.yy.c analyze.c -- flex --header-file=$(PWD)/analyze.h + @touch $@ diff --git a/bin/kbd/src/stali.mk b/bin/kbd/src/stali.mk index d457d3e..403453b 100644 --- a/bin/kbd/src/stali.mk +++ b/bin/kbd/src/stali.mk @@ -44,7 +44,7 @@ SRC = $(BIN:=.c) all: $(BIN) -$(BIN): $(LIB) $(OBJ) +$(BIN): $(LIB) $(OBJ) libkeymap/libkeymap.a @echo LD $@ @$(LD) $(LDFLAGS) -o $@ $@.o $(LIB) libkeymap/libkeymap.a diff --git a/bin/kbd/stali.mk b/bin/kbd/stali.mk index f83c59e..840a3cc 100644 --- a/bin/kbd/stali.mk +++ b/bin/kbd/stali.mk @@ -3,3 +3,5 @@ ROOT=../.. SUBDIRS = src/libkeymap src data include $(ROOT)/mk/dir.mk + +src: src/libkeymap diff --git a/bin/libarchive/cpio/stali.mk b/bin/libarchive/cpio/stali.mk index 4781f7f..c966213 100644 --- a/bin/libarchive/cpio/stali.mk +++ b/bin/libarchive/cpio/stali.mk @@ -7,7 +7,6 @@ OBJS= cmdline.o cpio.o CLEAN_FILES = CPPFLAGS = -DHAVE_CONFIG_H CFLAGS = -I. -I.. -I../libarchive -I../libarchive_fe -LDFLAGS += ../libarchive/libarchive.a $(ROOT)/lib/zlib/libz.a +LIBS = ../libarchive/libarchive.a $(ROOT)/lib/zlib/libz.a include $(ROOT)/mk/bin.mk - diff --git a/bin/libarchive/stali.mk b/bin/libarchive/stali.mk index 3269d29..3c2c7db 100644 --- a/bin/libarchive/stali.mk +++ b/bin/libarchive/stali.mk @@ -1,7 +1,9 @@ ROOT=../.. SUBDIRS = libarchive\ - cpio -# tar + cpio\ + tar include $(ROOT)/mk/dir.mk + +cpio tar: libarchive diff --git a/bin/libarchive/tar/stali.mk b/bin/libarchive/tar/stali.mk index 2da7ce5..c271c2e 100644 --- a/bin/libarchive/tar/stali.mk +++ b/bin/libarchive/tar/stali.mk @@ -7,7 +7,6 @@ OBJS= bsdtar.o cmdline.o creation_set.o read.o subst.o util.o write.o CLEAN_FILES = CPPFLAGS = -DHAVE_CONFIG_H CFLAGS = -I. -I.. -I../libarchive -I../libarchive_fe -LDFLAGS += ../libarchive/libarchive.a $(ROOT)/lib/zlib/libz.a +LIBS = ../libarchive/libarchive.a $(ROOT)/lib/zlib/libz.a include $(ROOT)/mk/bin.mk - diff --git a/bin/parted/lib/stali.mk b/bin/parted/lib/stali.mk index 45f8380..ec1fd76 100644 --- a/bin/parted/lib/stali.mk +++ b/bin/parted/lib/stali.mk @@ -42,7 +42,7 @@ OBJS = xstrtol.o\ error.o\ canonicalize-lgpl.o\ xalloc-die.o -GEN = fcntl.h\ +DEPS = fcntl.h\ inttypes.h\ ref-add.sed\ langinfo.h\ @@ -65,12 +65,10 @@ GEN = fcntl.h\ c++defs.h\ unistd.h LIB = libputil.a -CLEAN_FILES = $(GEN) +CLEAN_FILES = $(DEPS) include $(ROOT)/mk/lib.mk -deps: $(GEN) - -$(GEN): +$(DEPS): @echo GEN $@ @cp $@.stali $@ diff --git a/bin/parted/parted/stali.mk b/bin/parted/parted/stali.mk index db9e38b..7d16221 100644 --- a/bin/parted/parted/stali.mk +++ b/bin/parted/parted/stali.mk @@ -11,7 +11,6 @@ OBJS = parted.o\ ui.o CPPFLAGS += CFLAGS += -I. -I../lib -I../include -LDFLAGS += ../libparted/libparted.a ../../e2fsprogs/lib/libuuid.a ../lib/libputil.a +LIBS = ../libparted/libparted.a ../../e2fsprogs/lib/libuuid.a ../lib/libputil.a include $(ROOT)/mk/bin.mk - diff --git a/bin/parted/stali.mk b/bin/parted/stali.mk index 48dda80..fbcfda2 100644 --- a/bin/parted/stali.mk +++ b/bin/parted/stali.mk @@ -5,3 +5,5 @@ SUBDIRS = lib\ parted include $(ROOT)/mk/dir.mk + +parted: lib libparted diff --git a/bin/rc/stali.mk b/bin/rc/stali.mk index 0610972..ae9be1f 100644 --- a/bin/rc/stali.mk +++ b/bin/rc/stali.mk @@ -15,4 +15,3 @@ install: all uninstall: @cd $(DESTDIR)$(PREFIX)/etc && rm -f $(BIN) - diff --git a/bin/sbase/stali.mk b/bin/sbase/stali.mk index eed99a0..2c81018 100644 --- a/bin/sbase/stali.mk +++ b/bin/sbase/stali.mk @@ -210,8 +210,11 @@ $(LIBUTIL): $(LIBUTILOBJ) getconf.c: confstr_l.h limits_l.h sysconf_l.h pathconf_l.h -confstr_l.h limits_l.h sysconf_l.h pathconf_l.h: getconf.sh +confstr_l.h limits_l.h sysconf_l.h pathconf_l.h: _getconf ; + +_getconf: getconf.sh ./getconf.sh + touch $@ install: all mkdir -p $(DESTDIR)$(PREFIX)/bin @@ -229,7 +232,7 @@ uninstall: clean: rm -f $(BIN) $(OBJ) $(LIB) sbase-box sbase-$(VERSION).tar.gz - rm -f confstr_l.h limits_l.h sysconf_l.h pathconf_l.h + rm -f confstr_l.h limits_l.h sysconf_l.h pathconf_l.h _getconf .PHONY: all install uninstall clean diff --git a/bin/sinit/stali.mk b/bin/sinit/stali.mk index 8d3c1f0..ba74652 100644 --- a/bin/sinit/stali.mk +++ b/bin/sinit/stali.mk @@ -4,12 +4,10 @@ include $(ROOT)/config.mk OBJS = sinit.o BIN = init +DEPS = config.h include $(ROOT)/mk/bin.mk -deps: config.h - config.h: @echo creating $@ from config.def.h @cp config.def.h $@ - diff --git a/bin/smdev/stali.mk b/bin/smdev/stali.mk index 0380eb7..29f8462 100644 --- a/bin/smdev/stali.mk +++ b/bin/smdev/stali.mk @@ -3,6 +3,7 @@ ROOT=../.. include $(ROOT)/config.mk CFLAGS += -D_BSD_SOURCE -D_GNU_SOURCE +DEPS = config.h OBJS = \ smdev.o \ util/agetcwd.o \ @@ -18,8 +19,6 @@ BIN = smdev include $(ROOT)/mk/bin.mk -deps: config.h - config.h: @echo creating $@ from config.def.h @cp config.def.h $@ diff --git a/bin/ssh/stali.mk b/bin/ssh/stali.mk index afa6a24..0ce0fc6 100644 --- a/bin/ssh/stali.mk +++ b/bin/ssh/stali.mk @@ -484,7 +484,9 @@ BIN = ssh-key ssh OBJ = $(LIBTOMMATHOBJ) $(LIBTOMCRYPTOBJ) $(COMMONOBJS) $(KEYOBJS) $(CLIOBJS) $(CLISVROBJS) MAN = ssh.1 ssh-key.1 -all: $(LIB) $(BIN) +all: $(BIN) + +$(BIN): $(LIB) libtomcrypt/src/ciphers/aes/aes_enc.o: libtomcrypt/src/ciphers/aes/aes.c libtomcrypt/src/ciphers/aes/aes_tab.c $(CC) $(CFLAGS) -DENCRYPT_ONLY -c $< -o libtomcrypt/src/ciphers/aes/aes_enc.o @@ -497,13 +499,13 @@ $(LIBTOMCRYPT): $(LIBTOMCRYPTOBJ) $(AR) rc $@ $? $(RANLIB) $@ -ssh-key: $(COMMONOBJS) $(KEYOBJS) +ssh-key: $(COMMONOBJS) $(KEYOBJS) $(LIB) @echo LD $@ - @$(LD) $(LDFLAGS) -o $@ $(COMMONOBJS) $(KEYOBJS) $(LIB) + @$(LD) $(LDFLAGS) -o $@ $^ -ssh: $(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) +ssh: $(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) $(LIB) @echo LD $@ - @$(LD) -o $@ $(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) $(LIB) $(LDFLAGS) + @$(LD) -o $@ $^ $(LDFLAGS) .c.o: @echo CC $< diff --git a/bin/stali.mk b/bin/stali.mk index 72035e3..4ce0c5c 100644 --- a/bin/stali.mk +++ b/bin/stali.mk @@ -23,3 +23,5 @@ SUBDIRS = hbase\ parted include $(ROOT)/mk/dir.mk + +parted: e2fsprogs diff --git a/bin/vis/stali.mk b/bin/vis/stali.mk index 2694d31..39b2cc6 100644 --- a/bin/vis/stali.mk +++ b/bin/vis/stali.mk @@ -7,7 +7,8 @@ CFLAGS += -std=c99 -I$(ROOT)/lib/ncurses/include -I$(ROOT)/lib/libtermkey CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DNDEBUG -DVERSION=\"$(VERSION)\" BIN = vis CLEAN_FILES = config.h -LDFLAGS += $(ROOT)/lib/ncurses/libncurses.a $(ROOT)/lib/libtermkey/libtermkey.a +LIBS = $(ROOT)/lib/ncurses/libncurses.a $(ROOT)/lib/libtermkey/libtermkey.a +DEPS = config.h OBJS = array.o\ buffer.o\ libutf.o\ @@ -33,8 +34,6 @@ OBJS = array.o\ include $(ROOT)/mk/bin.mk -deps: config.h - config.h: cp config.def.h config.h @@ -45,9 +44,5 @@ postinst: @chmod 755 $(DESTDIR)$(PREFIX)/bin/vis-clipboard postuninst: - @cd $(DESTDIR)$(PREFIX)/bin && rm vis-open - @cd $(DESTDIR)$(PREFIX)/bin && rm vis-clipboard - - - - + @cd $(DESTDIR)$(PREFIX)/bin && rm -f vis-open + @cd $(DESTDIR)$(PREFIX)/bin && rm -f vis-clipboard diff --git a/config.mk b/config.mk index fb2cba1..201041b 100644 --- a/config.mk +++ b/config.mk @@ -2,36 +2,38 @@ VERSION = 0.0 # define target and target rootfs -HOST_ARCH=x86_64-linux-musl -TARGET_ARCH=arm-linux-musleabi -#TARGET_ARCH=$(HOST_ARCH) -#TARGET_LONG=8 -TARGET_LONG=4 -SYS=sys.pi -#SYS=sys.x86_64 -DESTDIR=$(HOME)/rootfs-pi -#DESTDIR=$(HOME)/rootfs-x86_64 +HOST_ARCH = x86_64-linux-musl + +TARGET_ARCH = $(HOST_ARCH) +TARGET_LONG = 8 +SYS = sys.x86_64 +DESTDIR = $(HOME)/rootfs-x86_64 + +#TARGET_ARCH = arm-linux-musleabi +#TARGET_LONG = 4 +#SYS = sys.pi +#DESTDIR = $(HOME)/rootfs-pi + PREFIX = / MANPREFIX = $(PREFIX)/share/man -M4 = m4 +M4 = m4 HOSTCC = $(ROOT)/../toolchain/bin/$(HOST_ARCH)-gcc -CC = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-gcc -CXX = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-g++ -AS = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-as -LD = $(CC) +CC = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-gcc +CXX = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-g++ +AS = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-as +LD = $(CC) -YACC = $(ROOT)/bin/hbase/yacc/yacc -HOSTAR = $(ROOT)/../toolchain/bin/$(HOST_ARCH)-ar -AR = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-ar +YACC = $(ROOT)/bin/hbase/yacc/yacc +HOSTAR = $(ROOT)/../toolchain/bin/$(HOST_ARCH)-ar +AR = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-ar HOSTRANLIB = $(ROOT)/../toolchain/bin/$(HOST_ARCH)-ranlib -RANLIB = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-ranlib +RANLIB = $(ROOT)/../toolchain/bin/$(TARGET_ARCH)-ranlib HOSTCPPFLAGS = -D_POSIX_SOURCE -D__stali__ -DTARGET_LONG=$(TARGET_LONG) -CPPFLAGS = $(HOSTCPPFLAGS) +CPPFLAGS = $(HOSTCPPFLAGS) HOSTCFLAGS = -I$(ROOT)/../toolchain/$(HOST_ARCH)/include -CFLAGS = -I$(ROOT)/../toolchain/$(TARGET_ARCH)/include -CXXFLAGS = -I$(ROOT)/../toolchain/$(TARGET_ARCH)/include -#-std=c99 -Wall -pedantic -#LDFLAGS = -s -static -LDFLAGS = -static +CFLAGS = -I$(ROOT)/../toolchain/$(TARGET_ARCH)/include +CXXFLAGS = -I$(ROOT)/../toolchain/$(TARGET_ARCH)/include +HOSTLDFLAGS = -static +LDFLAGS = $(HOSTLDFLAGS) diff --git a/etc/stali.mk b/etc/stali.mk index 156abcd..001f61f 100644 --- a/etc/stali.mk +++ b/etc/stali.mk @@ -13,4 +13,3 @@ ETC = fstab.def\ include $(ROOT)/mk/etc.mk clean: - diff --git a/lib/ncurses/ncurses/stali.mk b/lib/ncurses/ncurses/stali.mk index 11a78b5..978a3e4 100644 --- a/lib/ncurses/ncurses/stali.mk +++ b/lib/ncurses/ncurses/stali.mk @@ -161,47 +161,15 @@ OBJS = tty/hardscroll.o \ base/version.o LIB = ../libncurses.a -CLEAN_FILES = *.c init_keytry.h ../include/ncurses_def.h ../include/curses.h ../include/term.h ../include/hashsize.h +DEPS = init_keytry.h ../include/ncurses_def.h ../include/curses.h ../include/term.h ../include/hashsize.h +CLEAN_FILES = *.c $(DEPS) include $(ROOT)/mk/lib.mk -deps: init_keytry.h ../include/ncurses_def.h ../include/curses.h ../include/term.h ../include/hashsize.h +.SUFFIXES: .stali .h -init_keytry.h: - @cp init_keytry.stali init_keytry.h +.stali.c: + @cp $< $@ -../include/ncurses_def.h: - @cp ../include/ncurses_def.stali ../include/ncurses_def.h - -../include/curses.h: - @cp ../include/curses.stali ../include/curses.h - -../include/term.h: - @cp ../include/term.stali ../include/term.h - -../include/hashsize.h: - @cp ../include/hashsize.stali ../include/hashsize.h - -lib_gen.c: - @cp lib_gen.stali lib_gen.c - -expanded.c: - @cp expanded.stali expanded.c - -codes.c: - @cp codes.stali codes.c - -comp_captab.c: - @cp comp_captab.stali comp_captab.c - -fallback.c: - @cp fallback.stali fallback.c - -lib_keyname.c: - @cp lib_keyname.stali lib_keyname.c - -names.c: - @cp names.stali names.c - -unctrl.c: - @cp unctrl.stali unctrl.c +.stali.h: + @cp $< $@ diff --git a/lib/stali.mk b/lib/stali.mk index 6b002c6..4cbb9d3 100644 --- a/lib/stali.mk +++ b/lib/stali.mk @@ -7,3 +7,5 @@ SUBDIRS = zlib\ expat include $(ROOT)/mk/dir.mk + +libtermkey: ncurses diff --git a/mk/bin.mk b/mk/bin.mk index 733bfa1..4b558fa 100644 --- a/mk/bin.mk +++ b/mk/bin.mk @@ -1,4 +1,8 @@ -all: options deps $(BINS) $(BIN) +.SUFFIXES: + +.SUFFIXES: .o .c .cc + +all: options $(BIN) options: @echo $(BIN) build options: @@ -15,17 +19,20 @@ options: @echo CXX $< @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ -$(BIN): $(OBJS) +$(OBJS): $(DEPS) + +$(BIN): $(OBJS) $(LIBS) @echo LD $@ - @$(CC) -o $@ $(OBJS) $(LDFLAGS) + @$(CC) -o $@ $^ $(LDFLAGS) clean: @echo cleaning - @rm -f $(BINS) $(BIN) $(OBJS) $(CLEAN_FILES) + @rm -f $(BIN) $(OBJS) $(CLEAN_FILES) -install: all preinst postinst +install: postinst +postinst: preinst -preinst: +preinst: all @echo installing executable file to $(DESTDIR)$(PREFIX)/bin @mkdir -p $(DESTDIR)$(PREFIX)/bin @cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin @@ -43,7 +50,8 @@ preinst: chmod 644 $(DESTDIR)$(MANPREFIX)/man8/$(BIN).8;\ fi -uninstall: preuninst postuninst +uninstall: postuninst +postuninst: preuninst preuninst: @echo removing executable file from $(DESTDIR)$(PREFIX)/bin @@ -57,4 +65,4 @@ preuninst: rm -f $(DESTDIR)$(MANPREFIX)/man8/$(BIN).8;\ fi -.PHONY: deps options clean install preinst postinst uninstall preuninst postuninst +.PHONY: options clean install preinst postinst uninstall preuninst postuninst diff --git a/mk/dir.mk b/mk/dir.mk index 717edf6..5451f3b 100644 --- a/mk/dir.mk +++ b/mk/dir.mk @@ -1,21 +1,7 @@ -PWD = $(shell pwd) +all clean install uninstall: + $(MAKE) -f stali.mk $(SUBDIRS) TARGET=$@ -all: - @for i in $(SUBDIRS); do cd $$i; $(MAKE) -f stali.mk || exit; cd $(PWD); done; - @echo done - -clean: - @for i in $(SUBDIRS); do cd $$i; $(MAKE) -f stali.mk clean || exit; cd $(PWD); done - @echo cleaned - -install: all - @for i in $(SUBDIRS); do cd $$i; $(MAKE) -f stali.mk install || exit; cd $(PWD); done - @echo installed - -uninstall: - @for i in $(SUBDIRS); do cd $$i; $(MAKE) -f stali.mk uninstall || exit; cd $(PWD); done - @echo uninstalled - -.PHONY: - info all install uninstall clean +$(SUBDIRS): + cd $@ && $(MAKE) -f stali.mk $(TARGET) +.PHONY: all install uninstall clean $(SUBDIRS) diff --git a/mk/etc.mk b/mk/etc.mk index 28c1037..55c6d25 100644 --- a/mk/etc.mk +++ b/mk/etc.mk @@ -1,14 +1,16 @@ all: $(ETC) -install: all preinst postinst +install: postinst +postinst: preinst -preinst: +preinst: all @echo installing etc files to $(DESTDIR)/etc @mkdir -p $(DESTDIR)/etc @cp -f $(ETC) $(DESTDIR)/etc @cd $(DESTDIR)/etc && chmod 644 $(ETC) -uninstall: preuninst postuninst +uninstall: postuninst +postuninst: preuninst preuninst: @echo removing etc files from $(DESTDIR)/etc diff --git a/mk/lib.mk b/mk/lib.mk index accf1d0..d9516d6 100644 --- a/mk/lib.mk +++ b/mk/lib.mk @@ -1,4 +1,8 @@ -all: options deps $(LIBS) $(LIB) +.SUFFIXES: + +.SUFFIXES: .o .c .cc + +all: options $(LIB) options: @echo $(LIB) build options: @@ -14,6 +18,8 @@ options: @echo CXX $< @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ +$(OBJS): $(DEPS) + $(LIB): $(OBJS) @echo AR $@ @$(AR) cr $@ $(OBJS) @@ -23,9 +29,10 @@ clean: @echo cleaning @rm -f $(LIB) $(OBJS) $(CLEAN_FILES) -install: all preinst postinst +install: postinst +postinst: preinst -preinst: +preinst: all # @if test "$(LIB_INST)" != ""; then\ # echo installing library file to $(DESTDIR)$(PREFIX)/lib ;\ # mkdir -p $(DESTDIR)$(PREFIX)/lib ;\ @@ -33,7 +40,8 @@ preinst: # fi -uninstall: preuninst postuninst +uninstall: postuninst +postuninst: preuninst preuninst: # @if test "$(LIB_INST)" != ""; then\ @@ -41,4 +49,4 @@ preuninst: # rm -f $(DESTDIR)$(PREFIX)/lib/$(LIB_INST); \ # fi -.PHONY: deps options clean install preinst postinst uninstall preuninst postuninst +.PHONY: options clean install preinst postinst uninstall preuninst postuninst diff --git a/stali.mk b/stali.mk index f2ee6bb..7a3cc6d 100644 --- a/stali.mk +++ b/stali.mk @@ -9,6 +9,6 @@ SUBDIRS = etc\ bin\ $(SYS) -world: all - include $(ROOT)/mk/dir.mk + +bin: lib -- 2.9.3