File: Makefile.win32

package info (click to toggle)
apq 3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,772 kB
  • ctags: 406
  • sloc: ada: 2,943; ansic: 2,053; sh: 676; makefile: 204
file content (238 lines) | stat: -rw-r--r-- 7,969 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# $Id: Makefile.win32,v 1.36 2004/10/25 02:09:30 wwg Exp $
# Warren W. Gay VE3WWG
#
# Licensed under the ACL (Ada Community License)
# or GPL2 :

include config.win32

DISTDIR=apq-$(VERSION)
DISTFILE=apq-$(VERSION).tar.gz

#DBG=-g
#OPTZ=-O0

CC=gcc
AR=/usr/bin/ar
GNATMAKE=./GNAT

# NDEBUG=-DNDEBUG
ZOPTS=$(DBG) $(OPTZ)
COPTS=-Wall $(ZOPTS) -D__CYGWIN__ # $(NDEBUG)
CLMACH=-G5 # Optimize to Pentium (G6 for Pentium Pro)
CLOPTS=-nologo -W3 $(CLMACH) -O2 $(NDEBUG) -DDBUG_OFF -D_WINDOWS -DUSE_TLS 
AOPTS=-gnata -gnatf -gnato -gnatwp $(ZOPTS)

.c.o:
	$(CC) -c $(COPTS) $(ZOPTS) $(PG_INCL) $(MY_INCL) $< -o $*.o

all:	clr gnat.conf sybase$(HAVE_SY) setup$(HAVE_MY) mysql$(HAVE_MY) postgresql$(HAVE_PG) libapq.a finish

clr:
	rm -fr dll.d
	mkdir dll.d

build:	setup$(HAVE_MY) mysql$(HAVE_MY) postgresql$(HAVE_PG) libapq.a finish

tmysql::
	rm -f tmysql mysql.trc
	$(GNATMAKE) -gnatf tmysql


gnat.conf: GNATCONF
	./GNATCONF

setup0:        # MySQL support is not being included
sybase0:       # Sybase support is not being included
mysql0:        # MySQL support is not being included
postgresql0:   # PostgreSQL is not being included

apq-sybase.ads: apq-sybase.ads-in sybase_gentyp.c prep_sybase
	$(CC) $(COPTS) $(SY_INCL) sybase_gentyp.c -o sybase_gentyp
	$(CC) $(COPTS) $(SY_INCL) sybaseopts.c -o sybaseopts
	./sybaseopts >sybopts.tmp
	./sybase_gentyp | ./prep_sybase win32 >apq-sybase.ads
	rm -f sybase_gentyp

c_sybase.obj: c_sybase.c
	cl -c $(SY_INCL) $(CLOPTS) -MD c_sybase.c -o c_sybase.obj

sydll1:
	@if [ ! -f apq_syadapter.dll ] ; then echo "You need to download apq_syadapter.dll" >/dev/tty; false; fi

sydll0: apq_syadapter.dll

apq_syadapter.exp: c_sybase.obj
	lib -nologo -machine:i386 -out:apq_syadapter.lib c_sybase.obj

apq_syadapter.lib: apq_syadapter.exp

apq_syadapter.dll: apq_syadapter.exp apq_syadapter.lib c_sybase.obj
	link -nologo -machine:i386 -entry:DllMain@12 -dll -out:apq_syadapter.dll c_sybase.obj $(SY_WIMP)

sybase1: apq-sybase.ads c_sybase.obj sydll$(MSTOOLS)
	$(GNATMAKE) -c $(AOPTS) comp_sybase
	dll2def apq_syadapter.dll >dll.def
	dlltool --def dll.def --dllname apq_syadapter.dll --output-lib libsybase.a
	@rm -fr ./sybase.d dll.def
	mkdir -p ./sybase.d
	( cd ./sybase.d && $(AR) x ../libsybase.a && for f in *.o ; do mv $$f apq_sybase_$$f; done; mv -f *.o ../dll.d/. )
	rm -fr libsybase.a sybase.d

setup1:	mysql_xcr mysql_xcr2 mysql_xcr3 mysql_incl
	chmod u+x mysql_xcr mysql_xcr2 mysql_xcr3 mysql_incl mysql_xty mysql_linker_options

apq-mysql.ads: apq-mysql.ads-in mysql_generr.c mysql_xcr2 mysql_xcr3
	@rm -f mysql_errmsg.h mysql_generr
	./mysql_xcr >mysql_errmsg.h
	./mysql_xty >mysql_type_codes.h
	$(CC) $(COPTS) $(MY_INCL) mysql_generr.c -o mysql_generr
	$(CC) $(COPTS) $(MY_INCL) mysql_gentyp.c -o mysql_gentyp
	$(CC) $(COPTS) $(MY_INCL) mysqlopts.c -o mysql_opts
	./mysql_opts >opts.tmp
	./mysql_generr | sort -k1,1n | ./mysql_xcr2 >gen.tmp
	./mysql_gentyp | sort -k1,1n | ./mysql_xcr3
	@rm -f mysql_generr mysql_errmsg.h mysql_gentyp mysql_type_codes.h gen.tmp opts.tmp mysql_opts

c_mysql.obj: c_mysql.c config.win32
	cl -c $(MY_INCL) $(CLOPTS) -MD c_mysql.c -o c_mysql.obj

apq_myadapter.exp:  c_mysql.obj
	lib -nologo -machine:i386 -out:apq_myadapter.lib c_mysql.obj

apq_myadapter.lib: apq_myadapter.exp

apq_myadapter.dll: apq_myadapter.exp apq_myadapter.lib c_mysql.obj
	link -nologo -machine:i386 -entry:DllMain@12 -dll -out:apq_myadapter.dll c_mysql.obj $(MY_WIMP)

mydll1:
	@if [ ! -f apq_myadapter.dll ] ; then echo "You need to download apq_myadapter.dll" >/dev/tty; false; fi

mydll0: apq_myadapter.dll

mysql1: apq-mysql.ads mydll$(MSTOOLS)
	$(GNATMAKE) -c $(AOPTS) comp_mysql
	dll2def apq_myadapter.dll >dll.def
	dlltool --def dll.def --dllname apq_myadapter.dll --output-lib libmysql.a
	@rm -fr ./mysql.d dll.def
	mkdir ./mysql.d
	( cd ./mysql.d && $(AR) x ../libmysql.a && for f in *.o ; do mv $$f apq_mysql_$$f; done; mv -f *.o ../dll.d/. )
	rm -fr libmysql.a mysql.d

postgresql1: numeric.o notices.o
	$(GNATMAKE) -c $(AOPTS) comp_pg
	dll2def $$(cygpath -w "$(PG_DLL)") >dll.def
	dlltool --def dll.def --dllname $$(basename "$(PG_DLL)") --output-lib libpq.a
	@rm -fr dll.def ./pq.d dll.def
	mkdir ./pq.d
	( cd ./pq.d && $(AR) x ../libpq.a ; for f in *.o ; do mv $$f apq_pq_$$f; done; mv -f *.o ../dll.d/.)
	@rm -fr libpq.a pq.d

libapq.a: apq.o $(PG_OBJS) $(MY_OBJS) $(SY_OBJS)
	@rm -f libapq.a
	$(AR) cr libapq.a apq.o $(PG_OBJS) $(MY_OBJS) $(SY_OBJS) dll.d/*.o
	@ls -l libapq.a

finish:
	@echo "--"
	@echo "Now do 'make install' to install the library"
	@echo

install: distribution installer
	./installer

uninstall:
	@echo "Use the Control Panel: Add/Remove Programs"
	@echo "Look for 'APQ-$(VERSION) (remove only)'"

cleanmy0: # Have ability to create dll
	rm -f apq_adapter.dll apq_adapter.lib

cleanmy1: # keep apq_adapter.dll

clean:  cleanmy$(MSTOOLS)
	rm -f *.o c_mysql.obj *.ali *.core b~*.ad[sb] errs.t libapq.a mysql.trc comp_pg comp_mysql *.obj
	rm -fr ./dll.d 
	rm -f sybopts.tmp sybaseopts.exe
	rm -f mysql_errmsg.h mysql_type_codes.h 
	rm -f mysql_generr.exe mysql_gentyp.exe mysql_opts.exe 
	rm -f Makeincl tmysql apq-mysql.ads
	rm -f apq_myadapter.exp apq_myadapter.lib
	rm -f libapq.a apq_myadapter.exp nsis.log
	rm -f installer.exe

clobmy0:
clobmy1:
	rm -f apq_myadapter.dll

clobber: clean clobmy$(HAVE_MY) manclean
	rm -f config.win32 installer.exe gnat_info.exe apq-$(VERSION).exe
	rm -f apq-sybase.ads apq-mysql.ads gnat.conf
	rm -f apq_syadapter.dll apq_syadapter.exp apq_syadapter.lib
	rm -f gnat.conf gnat_info.log
	@[ -h GNUmakefile ] && rm GNUmakefile || true
	(cd ./sybase; make clobber)

manual:	apq_manual.pdf

apq_manual.dvi: manclean binding2.tex
	latex binding2.tex
	latex binding2.tex
	makeindex binding2
	latex binding2.tex
	mv binding2.dvi apq_manual.dvi

apq_manual.pdf: apq_manual.dvi
	# dvipdf apq_manual.dvi apq_manual.pdf

manclean::
	@rm -f binding2.toc binding2.log binding2.dvi binding2.aux binding2.idx binding2.ind binding2.ilg
	@rm -f apq_manual.dvi binding2.aux binding2.idx binding2.ilg binding2.ind binding2.lof binding2.log \
		binding2.lot binding2.toc

manlabels:
	sed <binding2.tex -n '/\\label{.*}/p' | sed 's|.*\(\\label{.*}\).*$$|\1|g'

manindexes:
	sed <binding2.tex -n '/\\index{.*}/p' | sed 's|.*\(\\index{.*}\).*$$|\1|g'

distribution::
	@echo "CREATING DISTRIBUTION :"
	rm -f APQ-$(VERSION).exe installer.exe
	[ ! -d ./win32-$(VERSION) ] && mkdir -p ./win32-$(VERSION)/adainclude || true
	[ ! -d ./win32-$(VERSION)/adalib ] && mkdir ./win32-$(VERSION)/adalib || true
	[ ! -d ./win32-$(VERSION)/bin ] && mkdir ./win32-$(VERSION)/bin || true
	cp -fp apq-manual.pdf ./win32-$(VERSION)/APQ-Manual.pdf
	cp -fp ACL.txt  ./win32-$(VERSION)/APQ_ACL_LICENSE.txt
	cp -fp GPL.txt  ./win32-$(VERSION)/APQ_GPL_LICENSE.txt
	cp -fp win32_copying.rtf  ./win32-$(VERSION)/APQ_LICENSE.rtf
	cp -fp PG_COPYRIGHT ./win32-$(VERSION)/APQ_PG_COPYRIGHT.txt
	cp -fp libapq.a ./win32-$(VERSION)/adalib/.
	cp -fp apq*.ali ./win32-$(VERSION)/adalib/.
	cp -fp apq*.ad[sb] ./win32-$(VERSION)/adainclude/.
	-cp -fp apq_myadapter.dll ./win32-$(VERSION)/bin/.
	-cp -fp apq_syadapter.dll ./win32-$(VERSION)/bin/.
	-cp -fp $(MY_DLL) ./win32-$(VERSION)/bin/libmysql.dll
	-cp -fp $(PG_DLL) ./win32-$(VERSION)/bin/libpq.dll
	-cp -fp win32_test.adb ./win32-$(VERSION)/win32_test.adb
	find ./win32-$(VERSION) -type f -exec chmod 444 {} \;

installer:: installer.nsi # distribution
	@echo "CREATING WIN32 INSTALLER :"
	makensis /Onsis.log /V2 /DVERS=$(VERSION) /DSRCDIR=$$(cygpath -w "$$PWD") installer.nsi || (cat nsis.log; false)
	@cat nsis.log
	ls -l installer.exe
	@echo
	@echo "READY TO RUN OR SHIP INSTALLER:"
	@echo

distclean:
	rm -f ./win32-$(VERSION)/adalib/*.a
	rm -f ./win32-$(VERSION)/adalib/*.ali
	rm -f ./win32-$(VERSION)/adainclude/*.ads
	rm -f ./win32-$(VERSION)/adainclude/*.adb
	rm -f ./win32-$(VERSION)/bin/apq_myadapter.dll
	rm -f ./win32-$(VERSION)/bin/libmysql.dll
	rm -f ./win32-$(VERSION)/bin/libpq.dll

# End $Source: /cvsroot/apq/apq/Makefile.win32,v $