2
# $Id: makefile.in,v 1.14 2004/04/17 11:28:07 andrew_belov Exp $
3
# ----------------------------------------------------------------------------
4
# This file is for using the GNU ways to compile ARJ.
12
SHELL = @CONFIG_SHELL@
20
INSTALL_DIR = @INSTALL@ -d -m 755
21
INSTALL_DATA = @INSTALL_DATA@
22
INSTALL_PROGRAM = @INSTALL_PROGRAM@
27
exec_prefix = @exec_prefix@
33
pkglibdir = $(libdir)/arj
41
ALL_CFLAGS = -DLOCALE=LANG_$(LOCALE) -DLOCALE_DESC="\"$(LOCALE)\"" \
42
-DPKGLIBDIR="\"$(pkglibdir)\"" @OS_DEF@
48
ALL_CFLAGS += -DCOMMERCIAL
53
ALL_CFLAGS += -g -DDEBUG
56
ADD_LDFLAGS = -s @LD_STRIP@
59
ALL_CFLAGS += $(CFLAGS)
61
# Build Installation paths
64
BASEDIR = $(SRC_DIR)/@OUT_DIR@/$(LOCALE)/$(DEBUG_SM)$(PACKAGE)
65
BASEDIR_C = $(SRC_DIR)/@OUT_DIR@/$(LOCALE)/$(DEBUG_SM)c
66
RES_DIR = $(SRC_DIR)/resource
67
RESFILE = $(RES_DIR)/resource.txt
69
TOOLS_DIR = $(BASEDIR)/tools
70
ARJ_DIR = $(BASEDIR)/arj
71
ARJSFXV_DIR = $(BASEDIR)/arjsfxv
72
ARJSFX_DIR = $(BASEDIR)/arjsfx
73
ARJSFXJR_DIR = $(BASEDIR)/arjsfxjr
74
REARJ_DIR = $(BASEDIR)/rearj
75
ARJCRYPT_DIR = $(BASEDIR)/arjcrypt
76
REGISTER_DIR = $(BASEDIR)/register
77
ARJDISP_DIR = $(BASEDIR)/arjdisp
78
SFXSTUB_DIR = $(BASEDIR)/sfxstub
80
# Definitions for compiling submodules
82
LDFLAGS = @LDFLAGS@ $(ADD_LDFLAGS)
83
DLL_FLAGS = @DLL_FLAGS@ $(ADD_LDFLAGS)
84
DLL_CFLAGS = @DLL_CFLAGS@
85
REQUIRES_DEF = @REQUIRES_DEF@
87
COPT = -c -I@OUT_DIR@ -I$(BASEDIR) -I$(SRC_DIR) @CFLAGS@ $(ALL_CFLAGS)
88
STD_COPT = -DARJUTIL $(COPT)
89
ARJ_COPT = -DSFL=4 $(COPT)
90
ARJSFXV_COPT = -DSFL=3 $(COPT)
91
ARJSFX_COPT = -DSFL=2 $(COPT)
92
ARJSFXJR_COPT = -DSFL=1 $(COPT)
93
REARJ_COPT = -DREARJ $(COPT)
94
REGISTER_COPT = -DREGISTER $(COPT)
95
ARJDISP_COPT = -DARJDISP $(COPT)
96
ARJCRYPT_COPT = $(DLL_CFLAGS) $(COPT)
97
SFXSTUB_COPT = -DSFXSTUB $(COPT)
101
$(ARJ_DIR)/%.o: $(BASEDIR)/%.c
102
$(CC) $(COPT) -o$@ $<
104
$(ARJSFX_DIR)/%.o: $(BASEDIR)/%.c
105
$(CC) $(COPT) -o$@ $<
107
$(ARJSFXV_DIR)/%.o: $(BASEDIR)/%.c
108
$(CC) $(COPT) -o$@ $<
110
$(ARJSFXJR_DIR)/%.o: $(BASEDIR)/%.c
111
$(CC) $(COPT) -o$@ $<
113
$(ARJCRYPT_DIR)/%.o: $(BASEDIR)/%.c
114
$(CC) $(ARJCRYPT_COPT) -o$@ $<
116
$(SFXSTUB_DIR)/%.o: $(BASEDIR)/%.c
117
$(CC) $(COPT) -o$@ $<
119
$(REARJ_DIR)/%.o: $(BASEDIR)/%.c
120
$(CC) $(COPT) -o$@ $<
122
$(REGISTER_DIR)/%.o: $(BASEDIR)/%.c
123
$(CC) $(COPT) -o$@ $<
125
$(ARJDISP_DIR)/%.o: $(BASEDIR)/%.c
126
$(CC) $(COPT) -o$@ $<
128
$(TOOLS_DIR)/%.o: $(SRC_DIR)/%.c
129
$(CC) $(STD_COPT) -o$@ $<
131
$(ARJ_DIR)/%.o: $(SRC_DIR)/%.c
132
$(CC) $(ARJ_COPT) -o$@ $<
134
$(ARJSFXV_DIR)/%.o: $(SRC_DIR)/%.c
135
$(CC) $(ARJSFXV_COPT) -o$@ $<
137
$(ARJSFX_DIR)/%.o: $(SRC_DIR)/%.c
138
$(CC) $(ARJSFX_COPT) -o$@ $<
140
$(ARJSFXJR_DIR)/%.o: $(SRC_DIR)/%.c
141
$(CC) $(ARJSFXJR_COPT) -o$@ $<
143
$(ARJCRYPT_DIR)/%.o: $(SRC_DIR)/%.c
144
$(CC) $(ARJCRYPT_COPT) -o$@ $<
146
$(REARJ_DIR)/%.o: $(SRC_DIR)/%.c
147
$(CC) $(REARJ_COPT) -o$@ $<
149
$(REGISTER_DIR)/%.o: $(SRC_DIR)/%.c
150
$(CC) $(REGISTER_COPT) -o$@ $<
152
$(ARJDISP_DIR)/%.o: $(SRC_DIR)/%.c
153
$(CC) $(ARJDISP_COPT) -o$@ $<
155
$(SFXSTUB_DIR)/%.o: $(SRC_DIR)/%.c
156
$(CC) $(SFXSTUB_COPT) -o$@ $<
159
# Main dependency tree
162
.PHONY: timestamp prepare cleanup package help
165
MAKE_KEY=$(TOOLS_DIR)/make_key$x
168
all: prepare timestamp
173
$(ARJCRYPT_DIR)/arjcrypt$d \
174
$(REARJ_DIR)/rearj$x \
175
$(REGISTER_DIR)/$(REGISTER)$x \
176
$(ARJDISP_DIR)/arjdisp$x \
177
$(TOOLS_DIR)/packager$x \
182
# Update timestamp file
185
timestamp: $(TOOLS_DIR)/today$x
186
$(TOOLS_DIR)/today$x $(LOCALE) $(BASEDIR)
198
MSGBIND_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
199
filemode.o msgbind.o arjdata.o crc32.o)
201
TODAY_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
204
MAKE_KEY_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
205
make_key.o crc32.o misc.o arj_proc.o arjsec_h.o arjsec_l.o)
207
POSTPROC_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
208
filemode.o postproc.o crc32.o)
210
JOIN_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
213
PACKAGER_OBJS = $(patsubst %,$(TOOLS_DIR)/%, \
214
filemode.o packager.o arjdata.o)
216
$(TOOLS_DIR)/msgbind$x: $(MSGBIND_OBJS)
217
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(MSGBIND_OBJS) $(LIBS)
219
$(TOOLS_DIR)/today$x: $(TODAY_OBJS)
220
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(TODAY_OBJS) $(LIBS)
222
$(TOOLS_DIR)/make_key$x: $(MAKE_KEY_OBJS)
223
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(MAKE_KEY_OBJS) $(LIBS)
225
$(TOOLS_DIR)/postproc$x: $(POSTPROC_OBJS)
226
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(POSTPROC_OBJS) $(LIBS)
228
$(TOOLS_DIR)/join$x: $(JOIN_OBJS)
229
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JOIN_OBJS) $(LIBS)
231
$(TOOLS_DIR)/packager$x: $(PACKAGER_OBJS)
232
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(PACKAGER_OBJS) $(LIBS)
234
# This rule tells that timestamping badly needs date_sig.c (it may bail out
235
# otherwise when the timestamps are being created for the first time)
236
$(BASEDIR)/date_sig.c: timestamp
238
# And this one explicitly specifies that chk_fmsg depends on individual files
239
$(ARJ_DIR)/chk_fmsg.o: $(SRC_DIR)/chk_fmsg.c $(BASEDIR)/fmsg_arj.c
240
$(ARJSFX_DIR)/chk_fmsg.o: $(SRC_DIR)/chk_fmsg.c $(BASEDIR)/fmsg_sfx.c
241
$(ARJSFXV_DIR)/chk_fmsg.o: $(SRC_DIR)/chk_fmsg.c $(BASEDIR)/fmsg_sfv.c
248
ARJCRYPT_DEF = $(SRC_DIR)/gnu/arjcrypt.def
251
ARJCRYPT_OBJS = $(patsubst %,$(ARJCRYPT_DIR)/%, \
252
integr.o gost.o gost_t.o nmsg_crp.o arjcrypt.o)
254
$(ARJCRYPT_DIR)/arjcrypt$d: $(ARJCRYPT_OBJS) $(TOOLS_DIR)/postproc$x
255
$(CC) $(ALL_CFLAGS) $(DLL_FLAGS) -o $@ $(ARJCRYPT_OBJS) $(ARJCRYPT_DEF) $(LIBS)
256
$(TOOLS_DIR)/postproc $@
258
$(BASEDIR)/nmsg_crp.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
259
$(TOOLS_DIR)/msgbind $(RESFILE) msg_crp $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
265
SFXSTUB_OBJS = $(patsubst %,$(SFXSTUB_DIR)/%, \
266
nmsg_stb.o sfxstub.o)
268
$(SFXSTUB_DIR)/sfxstub$x: $(SFXSTUB_OBJS) $(TOOLS_DIR)/postproc$x
269
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(SFXSTUB_OBJS) $(LIBS)
270
$(TOOLS_DIR)/postproc$x $@ -sfx
272
$(BASEDIR)/nmsg_stb.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
273
$(TOOLS_DIR)/msgbind $(RESFILE) msg_stb $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
279
ARJSFXV_OBJS = $(patsubst %,$(ARJSFXV_DIR)/%, \
280
sfx_id.o filemode.o date_sig.o fmsg_sfv.o imsg_sfv.o nmsg_sfv.o \
281
decode.o arjsfx.o fardata.o arj_user.o arj_arcv.o arj_file.o \
282
crc32.o misc.o debug.o arj_proc.o environ.o ea_mgr.o ntstream.o \
283
uxspec.o ext_hdr.o arjtypes.o exe_sear.o chk_fmsg.o filelist.o \
284
arjsec_h.o arjsec_l.o garble.o scrnio.o ansi.o externs.o)
286
$(ARJSFXV_DIR)/arjsfxv$x: $(ARJSFXV_OBJS) $(TOOLS_DIR)/postproc$x
287
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFXV_OBJS) $(LIBS) $(DYN_LIBS)
288
$(TOOLS_DIR)/postproc$x $@ -sfx
290
$(BASEDIR)/fmsg_sfv.c $(BASEDIR)/imsg_sfv.c $(BASEDIR)/nmsg_sfv.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
291
$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfv $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
297
ARJSFX_OBJS = $(patsubst %,$(ARJSFX_DIR)/%, \
298
sfx_id.o filemode.o fmsg_sfx.o imsg_sfx.o nmsg_sfx.o decode.o \
299
arjsfx.o fardata.o arj_user.o arj_arcv.o arj_file.o crc32.o \
300
misc.o debug.o arj_proc.o environ.o arjtypes.o exe_sear.o \
301
chk_fmsg.o arjsec_h.o arjsec_l.o garble.o externs.o)
303
$(ARJSFX_DIR)/arjsfx$x: $(ARJSFX_OBJS) $(TOOLS_DIR)/postproc$x
304
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFX_OBJS) $(LIBS)
305
$(TOOLS_DIR)/postproc$x $@ -sfx
307
$(BASEDIR)/fmsg_sfx.c $(BASEDIR)/imsg_sfx.c $(BASEDIR)/nmsg_sfx.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
308
$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfx $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
314
ARJSFXJR_OBJS = $(patsubst %,$(ARJSFXJR_DIR)/%, \
315
sfx_id.o fmsg_sfj.o nmsg_sfj.o arjsfxjr.o debug.o \
318
$(ARJSFXJR_DIR)/arjsfxjr$x: $(ARJSFXJR_OBJS) $(TOOLS_DIR)/postproc$x
319
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFXJR_OBJS) $(LIBS)
320
$(TOOLS_DIR)/postproc$x $@ -sfx
322
$(BASEDIR)/fmsg_sfj.c $(BASEDIR)/imsg_sfj.c $(BASEDIR)/nmsg_sfj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
323
$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
329
ARJ_OBJS = $(patsubst %,$(ARJ_DIR)/%, \
330
filemode.o date_sig.o fmsg_arj.o imsg_arj.o \
331
nmsg_arj.o integr.o file_reg.o decode.o encode.o \
332
arj.o enc_gwy.o fardata.o arj_user.o arj_arcv.o \
333
arj_file.o crc32.o misc.o debug.o arj_proc.o \
334
environ.o ea_mgr.o uxspec.o ext_hdr.o arjtypes.o exe_sear.o chk_fmsg.o \
335
filelist.o arjsec_h.o arjsec_l.o garble.o scrnio.o ansi.o \
336
crc16tab.o recovery.o gost.o gost40.o gost_t.o \
339
$(ARJ_DIR)/arj$x: $(ARJ_OBJS) \
340
$(RES_DIR)/$(LOCALE)/arjl.txt $(RES_DIR)/$(LOCALE)/arjs.txt \
341
$(TOOLS_DIR)/join$x \
342
$(TOOLS_DIR)/postproc$x \
343
$(SFXSTUB_DIR)/sfxstub$x \
344
$(ARJSFXV_DIR)/arjsfxv$x \
345
$(ARJSFX_DIR)/arjsfx$x \
346
$(ARJSFXJR_DIR)/arjsfxjr$x
347
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJ_OBJS) $(LIBS) $(DYN_LIBS)
348
$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(ARJSFXJR_DIR)/arjsfxjr$x
349
$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(ARJSFX_DIR)/arjsfx$x
350
$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(ARJSFXV_DIR)/arjsfxv$x
351
$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(SFXSTUB_DIR)/sfxstub$x
352
rm -f $(BASEDIR)/help.arj
353
$(ARJ_DIR)/arj$x a $(BASEDIR)/help.arj -+ -t1f -2e -e -jm -jh65535 -jt $(RES_DIR)/$(LOCALE)/arj?.txt
354
$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(BASEDIR)/help.arj
355
$(TOOLS_DIR)/postproc $@
357
$(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
358
$(TOOLS_DIR)/msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
364
REARJ_OBJS = $(patsubst %,$(REARJ_DIR)/%, \
365
integr.o filemode.o date_sig.o fmsg_rej.o nmsg_rej.o file_reg.o \
366
rearj.o fardata.o arj_file.o crc32.o misc.o debug.o arj_proc.o \
367
environ.o arjtypes.o filelist.o scrnio.o arjsec_h.o arjsec_l.o \
370
$(REARJ_DIR)/rearj$x: $(REARJ_OBJS) \
371
$(TOOLS_DIR)/postproc$x
372
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(REARJ_OBJS) $(LIBS)
373
$(TOOLS_DIR)/postproc $@
375
$(BASEDIR)/fmsg_rej.c $(BASEDIR)/imsg_rej.c $(BASEDIR)/nmsg_rej.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
376
$(TOOLS_DIR)/msgbind $(RESFILE) msg_rej $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
379
# Registration wizard
382
REGISTER_OBJS = $(patsubst %,$(REGISTER_DIR)/%, \
383
filemode.o integr.o fmsg_reg.o nmsg_reg.o register.o fardata.o crc32.o \
384
debug.o arj_proc.o environ.o)
386
$(REGISTER_DIR)/$(REGISTER)$x: $(REGISTER_OBJS) \
387
$(TOOLS_DIR)/postproc$x
388
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(REGISTER_OBJS) $(LIBS)
389
$(TOOLS_DIR)/postproc $@ -sfx
391
$(BASEDIR)/fmsg_reg.c $(BASEDIR)/imsg_reg.c $(BASEDIR)/nmsg_reg.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
392
$(TOOLS_DIR)/msgbind $(RESFILE) msg_reg $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
395
# Demonstration display program
398
ARJDISP_OBJS = $(patsubst %,$(ARJDISP_DIR)/%, \
399
nmsg_adi.o arjdisp.o fardata.o debug.o arj_proc.o environ.o \
402
$(ARJDISP_DIR)/arjdisp$x: $(ARJDISP_OBJS)
403
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJDISP_OBJS) $(LIBS)
405
$(BASEDIR)/fmsg_adi.c $(BASEDIR)/imsg_adi.c $(BASEDIR)/nmsg_adi.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
406
$(TOOLS_DIR)/msgbind $(RESFILE) msg_adi $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
409
# Pre-compilation actions
414
-mkdir -p $(TOOLS_DIR)
415
-mkdir -p $(ARJCRYPT_DIR)
416
-mkdir -p $(SFXSTUB_DIR)
417
-mkdir -p $(ARJSFXV_DIR)
418
-mkdir -p $(ARJSFX_DIR)
419
-mkdir -p $(ARJSFXJR_DIR)
421
-mkdir -p $(REARJ_DIR)
422
-mkdir -p $(REGISTER_DIR)
423
-mkdir -p $(ARJDISP_DIR)
431
-rm -f $(TOOLS_DIR)/*
432
-rm -f $(ARJCRYPT_DIR)/*
433
-rm -f $(SFXSTUB_DIR)/*
434
-rm -f $(ARJSFXV_DIR)/*
435
-rm -f $(ARJSFX_DIR)/*
436
-rm -f $(ARJSFXJR_DIR)/*
438
-rm -f $(REARJ_DIR)/*
439
-rm -f $(REGISTER_DIR)/*
440
-rm -f $(ARJDISP_DIR)/*
448
$(INSTALL_DIR) $(DESTDIR)$(bindir)
449
$(INSTALL_DIR) $(DESTDIR)$(mandir)/man1
450
$(INSTALL_DIR) $(DESTDIR)$(pkglibdir)
452
$(INSTALL_PROGRAM) $(ARJ_DIR)/arj$x $(DESTDIR)$(bindir)
453
$(INSTALL_PROGRAM) $(ARJCRYPT_DIR)/arjcrypt$d $(DESTDIR)$(pkglibdir)
454
$(INSTALL_PROGRAM) $(REARJ_DIR)/rearj$x $(DESTDIR)$(bindir)
455
$(INSTALL_PROGRAM) $(ARJDISP_DIR)/arjdisp$x $(DESTDIR)$(bindir)
456
$(INSTALL_PROGRAM) $(REGISTER_DIR)/$(REGISTER)$x $(DESTDIR)$(bindir)
458
$(INSTALL_DATA) $(RES_DIR)/en/*.1 $(DESTDIR)$(mandir)/man1
461
# Packaging (was: packager$x $(BASEDIR_C) $(BASEDIR))
466
$(TOOLS_DIR)/packager$x $(BASEDIR) $(BASEDIR)
475
@echo "all -- standard compile"
476
@echo "package -- all + packaging (requires a commercial version of the same kind)"
477
@echo "clean -- removes all '.o' and 'core' files"
478
@echo "install -- local installation"
480
@echo "Don't panic, the legacy compatibility is retained."