# $Id: Makefile.in,v 1.28 2002/07/21 13:21:24 richdawe Exp $ # # Makefile.in for pakke's sources # Copyright (C) 1999-2002 by Richard Dawe # top_srcdir = @top_srcdir@ PMODE_STUB = @PMODE_STUB@ PMSTUB = @PMSTUB@ include ../Makefile.cfg CFLAGS += -I.. -I../include LIBPAKKEOBJS = libpakke/fnsplit.o libpakke/util.o libpakke/log.o \ libpakke/archive.o libpakke/package.o \ libpakke/packlist.o libpakke/packdep.o libpakke/mft.o \ libpakke/dsm.o libpakke/builtin.o libpakke/djgpp.o \ libpakke/user.o libpakke/backup.o libpakke/unzip.o # NB: Do not include comptime.o here, because comptime.o depends on # these files. PAKKEOBJS = md5.o \ base64.o md5hash.o \ misc.o \ rc_lex.o rc_tab.o rcfile.o \ def_plat.o def_rc.o def_simt.o def_simm.o \ pakkedsm.o platform.o wget.o mirror.o \ initdb.o query.o install.o uinstall.o upgrade.o \ syncdb.o chkinteg.o \ pakke.o # NB: Do not include comptime.o here, because comptime.o depends on # these files. DSMCHECKOBJS = dsmcheck.o MKPLAT = defaults/mkplat MKPLATOBJS = defaults/mkplat.o MKSIMM = defaults/mksimm MKSIMMOBJS = defaults/mksimm.o DEPS = $(LIBPAKKEOBJS:.o=.d) $(PAKKEOBJS:.o=.d) $(DSMCHECKOBJS:.o=.d) \ $(MKPLATOBJS:.o=.d) $(MKSIMMOBJS:.o=.d) EXEEXT = @EXEEXT@ TARGETS = pakke dsmcheck TARGETS_EXE = $(patsubst %,%$(EXEEXT),$(TARGETS)) LIBPAKKE = libpakke/libpakke.a default: all all: $(TARGETS_EXE) libpakke doc pakke$(EXEEXT): $(PAKKEOBJS) comptime.o $(LIBPAKKE) $(CC) $(LDFLAGS) -o pakke $^ -lpopt $(LIBS) $(PMSTUB) pakke $(HOST_OS) $(PMODE_STUB) cp -p $@ ../bin/$@ dsmcheck$(EXEEXT): $(DSMCHECKOBJS) comptime.o $(LIBPAKKE) $(CC) $(LDFLAGS) -o dsmcheck $^ $(LIBS) $(PMSTUB) dsmcheck $(HOST_OS) $(PMODE_STUB) cp -p $@ ../bin/$@ $(LIBPAKKE): $(LIBPAKKEOBJS) $(AR) rcs $@ $^ $(RANLIB) $@ libpakke: ../lib/libpakke.a ../lib/libpakke.a: $(LIBPAKKE) test -d ../lib || mkdir ../lib cp -p $< $@ .PHONY: clean distclean maintainer-distclean doc pakke dsmcheck libpakke # Whenever a compile is done, refresh the build info comptime.c: ../scripts/mkcmpth.sh $(PAKKEOBJS) $(DSMCHECKOBJS) ../scripts/mkcmpth.sh "$(USERMAIL)" "$(DEFAULT_PLATFORM)" # Lexer and parser for pakke's configuration file # Lexing and parsing functions' prefix RCFILE_YY_PREFIX = rcfile_yy # Removed by 'clean' target RC_JUNK = rc_lex.c rc_tab.c rc_tab.h rc.out rc_lex.c: rc.l rc_tab.h $(LEX) -P$(RCFILE_YY_PREFIX) -o$@ $< rc_tab.c rc_tab.h: rc.y $(YACC) $(YACCFLAGS) -p $(RCFILE_YY_PREFIX) -d -o rc_tab.c $< # Rules for building default files $(MKPLAT): $(MKPLATOBJS) $(CC) $(LDFLAGS) $^ -o $@ $(MKSIMM): $(MKSIMMOBJS) $(CC) $(LDFLAGS) $^ -o $@ # def_plat.c is automatically generated from DSMs DEF_JUNK += def_plat.c def_plat.c: $(wildcard defaults/platform/*.dsm) $(MKPLAT) $(MKPLAT) defaults/platform/*.dsm > $@ # def_rc.c is automatically generated from the default pakkerc DEF_JUNK += def_rc.c def_rc.c: defaults/pakkerc defaults/def_rc.* cat defaults/def_rc.top > $@ cat defaults/pakkerc | ./defaults/mkquot.sh >> $@ cat defaults/def_rc.bot >> $@ # def_simt.c is automatically generated from the default simtelrc DEF_JUNK += def_simt.c def_simt.c: defaults/simtelrc defaults/def_simt.* cat defaults/def_simt.top > $@ cat defaults/simtelrc | ./defaults/mkquot.sh >> $@ cat defaults/def_simt.bot >> $@ # def_simm.c is automatically generated from the default simtelrc DEF_JUNK += def_simm.c def_simm.c: defaults/simtelrc $(MKSIMM) $(MKSIMM) defaults/simtelrc > $@ # pakkedsm.c is automatically generated from the binary DSM for this version # of pakke. BINARY_DSM = ../manifest/$(PACKAGE_BASE)b.dsm pakkedsm.c: $(BINARY_DSM) defaults/pakkedsm.* cat defaults/pakkedsm.top > pakkedsm.c cat $(BINARY_DSM) | ./defaults/mkquot.sh >> pakkedsm.c cat defaults/pakkedsm.mid >> pakkedsm.c echo \"$(PACKAGE_BASE)b.dsm\" >> pakkedsm.c cat defaults/pakkedsm.bot >> pakkedsm.c %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ %.d: %.c @echo Generating dependencies for $< @$(CC) $(CFLAGS) -M $< > $@ clean: -rm -f $(TARGETS) -rm -f $(TARGETS_EXE) -rm -f $(DEF_JUNK) -rm -f $(RC_JUNK) -rm -f $(DEPS) -rm -f $(LIBPAKKEOBJS) $(PAKKEOBJS) $(DSMCHECKOBJS) -rm -f $(MKPLATOBJS) $(MKSIMMOBJS) distclean: clean -rm -f *.\$$\$$\$$ -rm -f *~ maintainer-distclean: distclean # Remove config.status-generated files -rm -f Makefile dep: $(DEPS) -include $(DEPS)