sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

Makefile (4129B)


      1 .POSIX:
      2 include config.mk
      3 
      4 .SUFFIXES:
      5 .SUFFIXES: .y .o .c
      6 
      7 CPPFLAGS =\
      8 	-DPREFIX=\"$(PREFIX)\" \
      9 	-D_DEFAULT_SOURCE \
     10 	-D_NETBSD_SOURCE \
     11 	-D_BSD_SOURCE \
     12 	-D_XOPEN_SOURCE=700 \
     13 	-D_FILE_OFFSET_BITS=64
     14 
     15 HDR =\
     16 	arg.h\
     17 	compat.h\
     18 	crypt.h\
     19 	fs.h\
     20 	md5.h\
     21 	queue.h\
     22 	sha1.h\
     23 	sha224.h\
     24 	sha256.h\
     25 	sha384.h\
     26 	sha512.h\
     27 	sha512-224.h\
     28 	sha512-256.h\
     29 	text.h\
     30 	utf.h\
     31 	util.h
     32 
     33 LIBUTFOBJ =\
     34 	libutf/fgetrune.o\
     35 	libutf/fputrune.o\
     36 	libutf/isalnumrune.o\
     37 	libutf/isalpharune.o\
     38 	libutf/isblankrune.o\
     39 	libutf/iscntrlrune.o\
     40 	libutf/isdigitrune.o\
     41 	libutf/isgraphrune.o\
     42 	libutf/isprintrune.o\
     43 	libutf/ispunctrune.o\
     44 	libutf/isspacerune.o\
     45 	libutf/istitlerune.o\
     46 	libutf/isxdigitrune.o\
     47 	libutf/lowerrune.o\
     48 	libutf/rune.o\
     49 	libutf/runetype.o\
     50 	libutf/upperrune.o\
     51 	libutf/utf.o\
     52 	libutf/utftorunestr.o
     53 
     54 LIBUTILOBJ =\
     55 	libutil/concat.o\
     56 	libutil/cp.o\
     57 	libutil/crypt.o\
     58 	libutil/confirm.o\
     59 	libutil/ealloc.o\
     60 	libutil/enmasse.o\
     61 	libutil/eprintf.o\
     62 	libutil/eregcomp.o\
     63 	libutil/estrtod.o\
     64 	libutil/fnck.o\
     65 	libutil/fshut.o\
     66 	libutil/getlines.o\
     67 	libutil/human.o\
     68 	libutil/linecmp.o\
     69 	libutil/md5.o\
     70 	libutil/memmem.o\
     71 	libutil/mkdirp.o\
     72 	libutil/mode.o\
     73 	libutil/parseoffset.o\
     74 	libutil/putword.o\
     75 	libutil/reallocarray.o\
     76 	libutil/recurse.o\
     77 	libutil/rm.o\
     78 	libutil/sha1.o\
     79 	libutil/sha224.o\
     80 	libutil/sha256.o\
     81 	libutil/sha384.o\
     82 	libutil/sha512.o\
     83 	libutil/sha512-224.o\
     84 	libutil/sha512-256.o\
     85 	libutil/strcasestr.o\
     86 	libutil/strlcat.o\
     87 	libutil/strlcpy.o\
     88 	libutil/strsep.o\
     89 	libutil/strnsubst.o\
     90 	libutil/strtonum.o\
     91 	libutil/unescape.o\
     92 	libutil/writeall.o
     93 
     94 LIB = libutf.a libutil.a
     95 
     96 BIN =\
     97 	basename\
     98 	bc\
     99 	cal\
    100 	cat\
    101 	chgrp\
    102 	chmod\
    103 	chown\
    104 	chroot\
    105 	cksum\
    106 	cmp\
    107 	cols\
    108 	comm\
    109 	cp\
    110 	cron\
    111 	cut\
    112 	date\
    113 	dd\
    114 	dirname\
    115 	du\
    116 	echo\
    117 	ed\
    118 	env\
    119 	expand\
    120 	expr\
    121 	false\
    122 	find\
    123 	flock\
    124 	fold\
    125 	getconf\
    126 	grep\
    127 	head\
    128 	hostname\
    129 	join\
    130 	kill\
    131 	link\
    132 	ln\
    133 	logger\
    134 	logname\
    135 	ls\
    136 	make/make\
    137 	md5sum\
    138 	mkdir\
    139 	mkfifo\
    140 	mknod\
    141 	mktemp\
    142 	mv\
    143 	nice\
    144 	nl\
    145 	nohup\
    146 	od\
    147 	paste\
    148 	pathchk\
    149 	printenv\
    150 	printf\
    151 	pwd\
    152 	readlink\
    153 	renice\
    154 	rev\
    155 	rm\
    156 	rmdir\
    157 	sed\
    158 	seq\
    159 	setsid\
    160 	sha1sum\
    161 	sha224sum\
    162 	sha256sum\
    163 	sha384sum\
    164 	sha512sum\
    165 	sha512-224sum\
    166 	sha512-256sum\
    167 	sleep\
    168 	sort\
    169 	split\
    170 	sponge\
    171 	strings\
    172 	sync\
    173 	tail\
    174 	tar\
    175 	tee\
    176 	test\
    177 	tftp\
    178 	time\
    179 	touch\
    180 	tr\
    181 	true\
    182 	tsort\
    183 	tty\
    184 	uname\
    185 	unexpand\
    186 	uniq\
    187 	unlink\
    188 	uudecode\
    189 	uuencode\
    190 	wc\
    191 	which\
    192 	whoami\
    193 	xargs\
    194 	xinstall\
    195 	yes
    196 
    197 MAKEOBJ =\
    198 	make/defaults.o\
    199 	make/main.o\
    200 	make/parser.o\
    201 	make/posix.o\
    202 	make/rules.o\
    203 
    204 OBJ = $(LIBUTFOBJ) $(LIBUTILOBJ) $(MAKEOBJ)
    205 
    206 all: scripts/make
    207 	+@$(SMAKE) $(BIN)
    208 
    209 scripts/make:
    210 	$(CC) -o $@ make/*.c
    211 
    212 $(BIN): $(LIB)
    213 
    214 $(OBJ) $(BIN): $(HDR)
    215 
    216 .o:
    217 	$(CC) $(LDFLAGS) -o $@ $< $(LIB)
    218 
    219 .c.o:
    220 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
    221 
    222 .c:
    223 	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB)
    224 
    225 bc: bc.c
    226 	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ bc.c $(LIB)
    227 
    228 $(MAKEOBJ): make/make.h
    229 
    230 make/make: $(MAKEOBJ)
    231 	$(CC) $(LDFLAGS) -o $@ $(MAKEOBJ) $(LIB)
    232 
    233 libutf.a: $(LIBUTFOBJ)
    234 	$(AR) $(ARFLAGS) $@ $?
    235 	$(RANLIB) $@
    236 
    237 libutil.a: $(LIBUTILOBJ)
    238 	$(AR) $(ARFLAGS) $@ $?
    239 	$(RANLIB) $@
    240 
    241 getconf: getconf.h
    242 
    243 getconf.h:
    244 	scripts/getconf.sh > $@
    245 
    246 proto: $(BIN)
    247 	scripts/mkproto $(DESTDIR)$(PREFIX) $(DESTDIR)$(MANPREFIX) proto
    248 
    249 install uninstall: proto
    250 	scripts/$@ proto
    251 
    252 sbase-box-install: sbase-box proto
    253 	scripts/install proto
    254 	$(DESTDIR)$(PREFIX)/bin/sbase-box -i $(DESTDIR)$(PREFIX)/bin/
    255 
    256 sbase-box-uninstall: sbase-box proto
    257 	$(DESTDIR)$(PREFIX)/bin/sbase-box -d $(DESTDIR)$(PREFIX)/bin/
    258 	scripts/uninstall proto
    259 
    260 tests: all
    261 	@cd $@ && $(MAKE)
    262 
    263 dist: clean
    264 	mkdir -p sbase
    265 	cp LICENSE Makefile README TODO config.mk *.c *.1 *.h  sbase
    266 	cp -R libutf libutil make scripts tests sbase
    267 	mv sbase sbase-$(VERSION)
    268 	tar -cf sbase-$(VERSION).tar sbase-$(VERSION)
    269 	gzip sbase-$(VERSION).tar
    270 	rm -rf sbase-$(VERSION)
    271 
    272 sbase-box: $(BIN)
    273 	scripts/mkbox
    274 	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ build/*.c $(LIB)
    275 
    276 clean:
    277 	@cd tests && $(MAKE) clean
    278 	rm -f $(BIN) $(OBJ) $(LIB) sbase-box sbase-$(VERSION).tar.gz
    279 	rm -f scripts/make
    280 	rm -f getconf.h bc.c
    281 	rm -f proto
    282 	rm -rf build
    283 
    284 .PHONY: all install uninstall dist sbase-box-install sbase-box-uninstall clean