1# include Husky-Makefile-Config
2include ../huskymak.cfg
3
4ifeq ($(UNAME), LNX)
5  UNAMELONG = linux
6else
7  UNAMELONG = $(UNAME)
8endif
9
10ifeq ($(DEBUG), 1)
11#  POPT = -g  -XS -Co -Ci -Cr -Ct -ddebugit
12ifeq ($(PC), ppc386)
13  POPT = -g  -XS -Co -Ci -Cr -Ct -T$(UNAMELONG) -dPASCAL
14  LOPT = -Fl$(LIBDIR)
15  PCOPT =
16else
17  POPT = -g -T$(UNAMELONG) -DPASCAL
18  POPT = -L$(LIBDIR)
19  PCOPT = -c
20endif
21else
22ifeq ($(PC), ppc386)
23  POPT = -g -v0 -XS -Co -Ci -Cr -Ct -dPASCAL
24  LOPT = -Fl$(LIBDIR)
25  PCOPT =
26else
27  POPT = -DPASCAL
28  LOPT = -L$(LIBDIR)
29  PCOPT = -c
30endif
31endif
32
33
34all: ffma$(EXE)
35
36ifdef H2PAS
37fconf.pas: $(INCDIR)/fidoconf/fidoconf.h
38ifeq ($(PC), gpc)
39	cat $(INCDIR)/fidoconf/fidoconf.h \
40	 | grep -v "^#define " \
41	 | grep -v "^ *extern " \
42	 | awk 'BEGIN { cpp=0; } { if (($$1 == "#ifdef") && ($$2 == "__cplusplus")) { cpp=1; } else if (($$1 == "#endif") && (cpp == 1)) { cpp=0; } else if (cpp == 1) { printf "\n" } else { print; } }' > fidoconf.h
43	h2pas -u fconf -p -l fidoconfig -s -d -o /dev/stdout \
44	 fidoconf.h | sed -e 's/\^char/pchar/g' \
45	 -e 's/\^Double;/\^Double; PFile = ^File; PPChar = ^PChar;/' \
46	 | grep -v '^{$$include' \
47	 | grep -v "^[^']*';$$" \
48	 | grep -v "^ *var$$" \
49	 | sed 's/cdecl;//g' \
50	 > fconf.pas
51else
52	cat $(INCDIR)/fidoconf/fidoconf.h \
53	 | grep -v "^#define " \
54	 | grep -v "^ *extern " \
55	 | awk 'BEGIN { cpp=0; } { if (($$1 == "#ifdef") && ($$2 == "__cplusplus")) { cpp=1; } else if (($$1 == "#endif") && (cpp == 1)) { cpp=0; } else if (cpp == 1) { printf "\n" } else { print; } }' > fidoconf.h
56	h2pas -u fconf -p -l fidoconfig -s -d -o /dev/stdout \
57	 fidoconf.h | sed -e 's/\^char/pchar/g' \
58	 -e 's/\^Double;/\^Double; PFile = ^File; PPChar = ^PChar;/' \
59	 | grep -v '^{$$include' \
60	 | grep -v "^[^']*';$$" \
61	 | grep -v "^ *var$$" \
62	 > fconf.pas
63endif
64endif
65
66%$(OBJ): %.pas
67	$(PC) $(POPT) $(PCOPT) $*.pas
68
69ifeq ($(PC), ppc386)
70fidoconf2.pas: fconf$(OBJ)
71else
72fidoconf2.pas: gpcstrings$(OBJ) fconf$(OBJ)
73endif
74
75ifeq ($(PC), ppc386)
76ffma$(EXE): fidoconf2$(OBJ) erweiter$(OBJ) fparser$(OBJ) memman$(OBJ) \
77            utils$(OBJ) log$(OBJ) ini$(OBJ) match$(OBJ) fconf$(OBJ) \
78            smapi$(OBJ) ffma.pas
79	$(PC) $(POPT) $(LOPT) ffma.pas
80else
81ffma$(EXE): fidoconf2$(OBJ) erweiter$(OBJ) fparser$(OBJ) memman$(OBJ) \
82            utils$(OBJ) log$(OBJ) ini$(OBJ) match$(OBJ) fconf$(OBJ) \
83            gpcsmapi$(OBJ) ffma.pas
84	$(PC) $(POPT) $(LOPT) ffma.pas
85endif
86
87ifeq ($(PC), ppc386)
88utils.pas: smapi$(OBJ)
89else
90utils.pas: gpcsmapi$(OBJ)
91endif
92
93install: ffma$(EXE)
94	$(INSTALL) $(IBOPT) ffma$(EXE) $(BINDIR)
95
96uninstall:
97	-$(RM) $(RMOPT) $(BINDIR)$(DIRSEP)ffma$(EXE)
98
99clean:
100	-$(RM) $(RMOPT) fconf.pas
101	-$(RM) $(RMOPT) fidoconf.h
102	-$(RM) $(RMOPT) *$(OBJ)
103	-$(RM) $(RMOPT) *$(LIB)
104	-$(RM) $(RMOPT) *$(TPU)
105	-$(RM) $(RMOPT) *~
106
107distclean: clean
108	-$(RM) $(RMOPT) ffma$(EXE)
109
110