1CC = @CC@ 2CFLAGS = @CFLAGS@ @DEFS@ 3CPPFLAGS = @CPPFLAGS@ 4 5EXEEXT = @EXEEXT@ 6OBJEXT = @OBJEXT@ 7PATH_SEPARATOR = @PATH_SEPARATOR@ 8 9LD = @CC@ 10AR = @AR@ 11RANLIB = @RANLIB@ 12LOADLIBES = 13LDLIBS += @LIBS@ @MODLIBS@ -lm @NOMODS@ @MODLIBSCOND@ 14LDFLAGS += @LDFLAGS@ 15 16SHOBJFLAGS = @SHOBJFLAGS@ 17SHOBJLDFLAGS = @SHOBJLDFLAGS@ 18SHOBJEXT = @SHOBJEXT@ 19 20MODLIBS = @MODLIBS@ 21 22INSTALL = @INSTALL@ 23@SET_MAKE@ 24 25prefix = @prefix@ 26exec_prefix = @exec_prefix@ 27libdir = @prefix@/lib 28bindir = @prefix@/bin 29sysconfdir = @sysconfdir@ 30mandir = @mandir@ 31datadir = @datadir@ 32 33CONF = $(sysconfdir)/dact.conf 34CFLAGS += -DDACT_CONFIG_FILE=\"$(CONF)\" -DEXEEXT=\"$(EXEEXT)\" 35#CFLAGS += -O3 36#LDFLAGS += -static 37 38DEBUGALGO = comp_bitsums.c comp_factor.c comp_textrle.c 39OBJS += dact_common.o comp_fail.o comp_plain.o buffer.o header.o sort.o dact.o module.o parse.o dendian.o crc.o net.o ui.o sfx.o libdact.o @LIBOBJS@ 40# Note that the following lacks "dact_shr.o" but otherwise MUST 41# be kept in sync with OBJS 42SHLIBOBJS += dact_common_shr.o comp_fail_shr.o comp_plain_shr.o buffer_shr.o header_shr.o sort_shr.o module_shr.o parse_shr.o dendian_shr.o crc_shr.o net_shr.o ui_shr.o sfx_shr.o libdact_shr.o @SHLIBOBJS@ 43ALGO = comp_snibble.c comp_delta.c comp_text.c comp_rle.c cipher_chaos.c cipher_sub.c cipher_psub.c @ALGO@ 44MODS = $(ALGO:.c=.so) 45 46TOBUILD = dact$(EXEEXT) libdact.$(SHOBJEXT) libdact.a dact.conf 47 48all: @DEFAULT@ 49 50module: @DEPEND@ 51 @LDLIBS="@ALLMODLIBS@" \ 52 $(MAKE) $(TOBUILD) 53 54static: @DEPEND@ 55 @OBJS="$(ALGO:.c=.o) $(CR_OBJ)" SHLIBOBJS="$(ALGO:.c=_shr.o)" LDLIBS="$(MODLIBS)" $(MAKE) $(TOBUILD) 56 57dact.conf: Makefile 58 @echo "version_check off" > dact.conf 59 @echo "#block_size 0" >> dact.conf 60 @echo "#exclude_algo 0" >> dact.conf 61 @echo "use_urls on" >> dact.conf 62 @echo "color_ui off" >> dact.conf 63 @echo "network_access on" >> dact.conf 64 @echo "binary_check off" >> dact.conf 65 @echo "module_dir $(datadir)/dact" >> dact.conf 66 @echo "module_load_all off" >> dact.conf 67@MODS@ @for so in $(MODS:.so=); do echo "load_module $$so" >> dact.conf; done 68 69dact$(EXEEXT): $(OBJS) $(MODS) 70 $(CC) $(OBJS) $(LIBS) -o dact$(EXEEXT) $(LDLIBS) $(LDFLAGS) 71 72libdact.$(SHOBJEXT): $(SHLIBOBJS) 73 $(CC) $(CPPFLAGS) $(CFLAGS) $(SHOBJFLAGS) -o $@ $^ $(LDLIBS) $(LDFLAGS) $(SHOBJLDFLAGS) 74 75libdact.a: $(OBJS) 76 @AR@ rcu libdact.a $(filter-out dact.o, $^) 77 -@RANLIB@ libdact.a 78 79%_shr.o: %.c 80 $(CC) $(CPPFLAGS) $(CFLAGS) $(SHOBJFLAGS) -c -o $@ $? 81 82%.so: %.c %.lnk 83 @echo $(CC) $(CPPFLAGS) $(CFLAGS) $(SHOBJFLAGS) -o $@ -DAS_MODULE $(SHOBJLDFLAGS) $(LDFLAGS) $< $(filter %.o, $^) `cat $(<:.c=.lnk)`; \ 84 $(CC) $(CPPFLAGS) $(CFLAGS) $(SHOBJFLAGS) -o $@ -DAS_MODULE $(SHOBJLDFLAGS) $(LDFLAGS) $< $(filter %.o, $^) `cat $(<:.c=.lnk)` 85 86.PHONY: clean distclean install-bin install mrproper install-local install-bin-local uninstall depend 87clean: 88 rm -f dact dact$(EXEEXT) libdact.$(SHOBJEXT) libdact.$(SHOBJEXT).def libdact.$(SHOBJEXT).a libdact.a core *~ $(ALGO:.c=.so) *.o 89 90distclean: clean 91 rm -f Makefile config.h config.status config.log config.cache 92 93mrproper: distclean 94 rm -rf Makefile.dep configure autom4te.cache/ config.h.in 95 96install-bin: dact$(EXEEXT) 97 -$(INSTALL) -d $(bindir) 98 $(INSTALL) -m 755 dact$(EXEEXT) $(bindir)/dact$(EXEEXT) 99 100install: all install-bin 101 -$(INSTALL) -d $(mandir)/man1 102 -$(INSTALL) -d $(libdir) 103 -$(INSTALL) -d $(datadir)/dact 104 -$(INSTALL) -d $(sysconfdir) 105 $(INSTALL) -m 644 dact.conf $(CONF) 106 $(INSTALL) -m 644 Docs/dact.1 $(mandir)/man1/dact.1 107 -$(INSTALL) -m 755 libdact.$(SHOBJEXT) $(libdir)/libdact.$(SHOBJEXT) 108 -$(INSTALL) -m 644 libdact.$(SHOBJEXT).def $(libdir)/libdact.$(SHOBJEXT).def 109 -$(INSTALL) -m 644 libdact.$(SHOBJEXT).a $(libdir)/libdact.$(SHOBJEXT).a 110 -$(INSTALL) -m 644 libdact.a $(libdir)/libdact.a 111@MODS@ for so in $(MODS); do $(INSTALL) -m 755 $$so $(datadir)/dact/$$so; done 112 ./patch-magic-file $(datadir)/magic 113 114install-bin-local: dact$(EXEEXT) 115 -$(INSTALL) -d $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m` 116 $(INSTALL) -m 755 dact$(EXEEXT) $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m`/dact$(EXEEXT) 117 118install-local: all install-bin-local 119 -$(INSTALL) -d $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m` 120 $(INSTALL) -m 644 dact.conf $(HOME)/.dact/dact.conf 121 -$(INSTALL) -m 644 libdact.a $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m`/dact$(EXEEXT) 122 -$(INSTALL) -m 755 libdact.$(SHOBJEXT) $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m`/dact$(EXEEXT) 123@MODS@ for so in $(MODS); do $(INSTALL) -m 755 $$so $(HOME)/.dact/`uname -s | tr A-Z a-z`-`uname -m`/$$so; done 124 125uninstall: 126 rm -f $(bindir)/dact$(EXEEXT) 127 rm -f $(mandir)/man1/dact.1 $(CONF) 128 rm -f $(libdir)/libdact.a $(libdir)/libdact.$(SHOBJEXT) 129@MODS@ rm -rf $(datadir)/dact 130 131depend: Makefile.dep 132 133Makefile.dep: *.c *.h Makefile 134 @echo "building Makefile.dep" 135 @$(CC) $(CFLAGS) $(CPPFLAGS) -MM $(ALGO) $(OBJS:.o=.c) $(MODS:.so=.c) dact.c > Makefile.dep 136 @$(CC) $(CFLAGS) $(CPPFLAGS) -MM $(ALGO) $(filter-out libdact.c, $(OBJS:.o=.c)) $(MODS:.so=.c) dact.c | sed -e "s/^\([^ ]*\)\.o: /\1.so: /g" >> Makefile.dep 137 138include Makefile.dep 139