1
Adjust the build process for Debian.
3
New in 2.4: the upstream src/opengl/Makefile.in now builds
4
gl_h.{ali,o} from gl_h.adb, but not glu_h.{ali,o} from glu_h.ads.
5
When building testgtk, we get errors because glu_h.{ali,o} is missing.
6
This patch fixes this problem by forclibly building glu_h.
8
New in 2.8: change the sonames, because I now build with GCC 4.1
9
instead of GNAT GPL Edition, and so the ABIs are different.
14
Index: src/Makefile.in
15
===================================================================
16
--- src/Makefile.in.orig 2007-02-19 10:54:39.243152241 +0100
17
+++ src/Makefile.in 2007-02-19 10:54:52.187785135 +0100
21
CFLAGS = -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS \
22
- @CFLAGS@ -Wall @GTK_CFLAGS@ -I.. $(FPIC)
23
+ @CFLAGS@ -Wall @GTK_CFLAGS@ $(FPIC)
26
-GNATMAKELDFLAGS = -largs -L. -lgtkada $(GTK_LIBS)
27
+GNATMAKELDFLAGS = -largs -L.. -lgtkada$(MAJOR) $(GTK_LIBS)
29
GETTEXT_INTL=@GETTEXT_INTL@
30
HAVE_GETTEXT=@HAVE_GETTEXT@
32
INSTALL_DATA = @INSTALL_DATA@
33
INSTALL_SCRIPT = @INSTALL_SCRIPT@
35
-LIBNAME = libgtkada$(SO_EXT)
36
+LIBNAME = libgtkada$(MAJOR)$(SO_EXT)
37
ifeq ($(OS),Windows_NT)
38
SONAME = libgtkada-$(MAJOR).$(MINOR)$(SO_EXT)
40
-SONAME = libgtkada-$(MAJOR).$(MINOR)$(SO_EXT).$(MICRO)
41
+SONAME = libgtkada$(SO_EXT).$(MAJOR).$(MINOR)
43
-ARCHIVENAME = libgtkada.a
44
+ARCHIVENAME = libgtkada$(MAJOR).a
46
-GTKADA_CONFIG = gtkada-config
47
+GTKADA_CONFIG = gtkada$(MAJOR)-config
49
-GATE_EX = gate-in.exe
51
-GENERATE = generate.pl
54
+GATE_EX = gate$(MAJOR)-in.exe
56
+GENERATE = generate$(MAJOR).pl
57
+DGATE = dgate$(MAJOR)
58
+DGATE_SRC = dgate.adb
59
+GDIALOG = gdialog$(MAJOR)
60
+GDIALOG_SRC = gdialog.adb
62
c_objects = $(LIB_DIR)/misc.o $(LIB_DIR)/misc_extra.o $(LIB_DIR)/misc_broken.o
63
-c_extra_objects = gtkextra/gtk*.o
64
+c_extra_objects = gtkextra/$(LIB_DIR)/gtk*.o
66
## General and public targets
70
$(LIBNAME):: $(LIB_DIR)/$(MAKE_ADB).o ${wildcard ${LIB_DIR}/*.o} $(c_objects)
71
ifeq ($(BUILD_SHARED),yes)
72
- $(CC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
73
+ $(ADAC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
74
$(SO_OPTS)$(SONAME) $(LIB_DIR)/glib*.o $(LIB_DIR)/gdk*.o \
75
$(LIB_DIR)/gtk*.o $(LIB_DIR)/pango*.o \
76
- $(c_objects) $(c_extra_objects) $(GTK_LIBS)
77
+ $(c_objects) $(c_extra_objects) $(GTK_LIBS) \
78
+ -L/usr/lib/gcc-lib/`$(ADAC) -dumpmachine`/`$(ADAC) -dumpversion`/adalib \
81
$(LN) $(SONAME) $(LIBNAME)
82
-ifeq ($(OS),Windows_NT)
83
- -@if [ ! -f .devel ]; then \
84
- $(CHMOD) +x $(SONAME) $(LIBNAME); \
87
- -@if [ ! -f .devel ]; then \
89
- $(CHMOD) +x $(LIBNAME); \
94
$(ARCHIVENAME):: $(LIB_DIR)/$(MAKE_ADB).o ${wildcard ${LIB_DIR}/*.o} $(c_objects)
95
$(AR) $(ARFLAGS) $(ARCHIVENAME) $(LIB_DIR)/glib*.o $(LIB_DIR)/gdk*.o $(LIB_DIR)/gtk*.o $(LIB_DIR)/pango*.o $(c_objects) $(c_extra_objects)
96
-$(RANLIB) $(ARCHIVENAME)
98
-# This copies the .ali files from lib_obj/ to the current directory, and change
99
-# the permission of the files so that dgate, gate and testgtk use the dynamic
100
-# library. We do not do this if .devel exists, so that gnatmake will still
101
-# rebuild the files (it does not check anything if the .ali files are read-only.
103
- test -f .devel || $(CP) $(LIB_DIR)/*.ali .
104
- test -f .devel || $(CHMOD) -w glib*.ali gdk*.ali gtk*.ali pango*.ali
106
-$(GATE_EX):: $(GATE_SRC) $(LIBNAME) force
107
- @if [ -f .devel ]; then \
108
- $(GNATMAKE) -aO$(LIB_DIR) $(GNATFLAGS_DEVEL) -o $(GATE_EX) $(GATE_SRC) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
110
- $(GNATMAKE) $(GNATFLAGS) -o $(GATE_EX) $(GATE_SRC) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
113
-$(DGATE):: $(DGATE).adb $(LIBNAME) glade
114
- @if [ -f .devel ]; then \
115
- $(GNATMAKE) -aO$(LIB_DIR) -Iglade $(GNATFLAGS_DEVEL) $(DGATE) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
117
- $(GNATMAKE) -Iglade $(GNATFLAGS) $(DGATE) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
119
+$(GATE_EX):: $(GATE_SRC) $(LIBNAME) | obj-tools
121
+ $(GNATMAKE) $< -o ../$@ -aI.. -aO. \
122
+ $(GNATFLAGS) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS);
124
+$(GDIALOG):: $(GDIALOG_SRC) $(LIBNAME) | obj-tools
126
+ $(GNATMAKE) $< -o ../$@ -aI.. -aO. \
127
+ $(GNATFLAGS) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS);
129
+$(DGATE):: $(DGATE_SRC) $(LIBNAME) glade | obj-tools
131
+ $(GNATMAKE) $< -o ../$@ \
132
+ -aI.. -aI../glade -aO. \
133
+ $(GNATFLAGS) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS) \
134
+ -L../glade -lgtkada$(MAJOR)_glade;
136
+# Create a directory that contains symlinks to the .ali files for the
137
+# libraries, and will contain the object files for the tools. This
138
+# way, gnatmake does not see the library object files, and so does not
139
+# link them statically into the tools.
140
+obj-tools: $(LIBNAME) glade
142
+ cd $@; ln -f -s ../$(LIB_DIR)/*.ali ../glade/$(LIB_DIR)/*.ali .
144
-$(GDIALOG):: $(GDIALOG).adb $(LIBNAME)
145
- @if [ -f .devel ]; then \
146
- $(GNATMAKE) -aO$(LIB_DIR) $(GNATFLAGS_DEVEL) $(GDIALOG) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
148
- $(GNATMAKE) $(GNATFLAGS) $(GDIALOG) $(GNATMAKEBINDFLAGS) $(GNATMAKELDFLAGS); \
151
-$(LIB_DIR)/$(MAKE_ADB).o:: gtkada-intl.adb force
152
+$(LIB_DIR)/$(MAKE_ADB).o:: gtkada-intl.adb force | $(LIB_DIR)
153
@if [ -f .devel ]; then \
155
$(GNATMAKE) -c ../$(MAKE_ADB) $(GNATFLAGS_DEVEL) $(FPIC); \
157
$(GNATMAKE) -c ../$(MAKE_ADB) $(GNATFLAGS) $(FPIC); \
163
gtkada-intl.adb: gtkada-intl.gpb Makefile
164
gnatprep -DGETTEXT_INTL=$(GETTEXT_INTL) \
165
-DHAVE_GETTEXT=$(HAVE_GETTEXT) gtkada-intl.gpb gtkada-intl.adb
167
## The dependencies on the .h files have to be given explicitly
169
$(c_objects): $(LIB_DIR)/%.o : %.c
170
- $(CD) $(LIB_DIR); $(CC) -c $(CFLAGS) ../$<
171
+ $(CC) -c $(CFLAGS) $< -o $@
175
Index: src/Makefile.common.in
176
===================================================================
177
--- src/Makefile.common.in.orig 2007-02-19 10:54:39.267153415 +0100
178
+++ src/Makefile.common.in 2007-02-19 10:55:41.670204445 +0100
185
-GNATFLAGS = -O2 -gnatn -gnatws
186
-GNATFLAGS_DEVEL = -O2 -gnatay -gnatwae -g -gnatec=$(PWD)/gnat.adc
187
+GNATFLAGS = @CFLAGS@ -gnatafno
188
+GNATFLAGS_DEVEL = @CFLAGS@ -gnatay -gnatwae -gnatec=$(PWD)/gnat.adc
191
OS_SPECIFIC_LINK_OPTIONS = @OS_SPECIFIC_LINK_OPTIONS@
192
Index: src/glade/Makefile.in
193
===================================================================
194
--- src/glade/Makefile.in.orig 2007-02-19 10:54:39.307155371 +0100
195
+++ src/glade/Makefile.in 2007-02-19 10:54:52.247788068 +0100
198
include ../Makefile.common
200
-SONAME = libgtkada_glade-$(MAJOR).$(MINOR)$(SO_EXT).$(MICRO)
201
-LIBNAME = libgtkada_glade$(SO_EXT)
202
-ARCHIVENAME = libgtkada_glade.a
203
+SONAME = libgtkada_glade$(SO_EXT).$(MAJOR).$(MINOR)
204
+LIBNAME = libgtkada$(MAJOR)_glade$(SO_EXT)
205
+ARCHIVENAME = libgtkada$(MAJOR)_glade.a
207
ifeq ($(HAVE_LIBGLADE),True)
208
LIBGLADE_SOURCES=glade.adb glade-xml.adb
209
LIBGLADE_OBJECTS=glade.o glade-xml.o
210
LIBGLADE_LIBS=@LIBGLADE_LIBS@
213
ifeq ($(BUILD_SHARED),yes)
214
all: $(LIBNAME) $(ARCHIVENAME)
219
-$(LIBNAME): $(LIBGLADE_OBJECTS)
220
- $(CC) -shared -fPIC $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
221
- $(SO_OPTS)$(SONAME) $(LIBGLADE_OBJECTS) $(LIBGLADE_LIBS) @GTK_LIBS@
222
+$(LIBNAME): $(foreach o,$(LIBGLADE_OBJECTS),$(LIB_DIR)/$(o))
223
+ $(ADAC) -shared -fPIC $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
224
+ $(SO_OPTS)$(SONAME) $^ $(LIBGLADE_LIBS) @GTK_LIBS@ \
225
+ -lgnat -L.. -lgtkada$(MAJOR)
227
$(LN) $(SONAME) $(LIBNAME)
228
- -@if [ ! -f ../.devel ]; then \
229
- strip $(LIBNAME); \
232
-$(ARCHIVENAME): $(LIBGLADE_OBJECTS)
233
- $(AR) $(ARFLAGS) $(ARCHIVENAME) $(LIBGLADE_OBJECTS)
234
+$(ARCHIVENAME): $(foreach o,$(LIBGLADE_OBJECTS),$(LIB_DIR)/$(o))
235
+ $(AR) $(ARFLAGS) $(ARCHIVENAME) $^
236
if [ -f /usr/bin/$(RANLIB) -o -f /bin/$(RANLIB) ]; then \
237
$(RANLIB) $(ARCHIVENAME); \
240
-$(LIBGLADE_OBJECTS):: force
241
+$(LIB_DIR)/%.o: %.adb | $(LIB_DIR)
242
@if [ -f ../.devel ]; then \
243
- $(GNATMAKE) -I.. -aO../lib-obj $(GNATFLAGS_DEVEL) $(FPIC) ${@:%.o=%} ;\
245
+ $(GNATMAKE) -I../.. -aO../../$(LIB_DIR) $(GNATFLAGS_DEVEL) $(FPIC) ../$<; \
247
- $(GNATMAKE) -I.. -aO../lib-obj $(GNATFLAGS) $(FPIC) ${@:%.o=%}; \
249
+ $(GNATMAKE) -I../.. -aO../../$(LIB_DIR) $(GNATFLAGS) $(FPIC) ../$<; \
256
-${RM} *.o *.ali *~ b_*.c b~*.ad? core
257
-${RM} $(ARCHIVENAME) $(LIBNAME) $(SONAME)
258
Index: src/gnome/Makefile.in
259
===================================================================
260
--- src/gnome/Makefile.in.orig 2007-02-19 10:54:39.375158695 +0100
261
+++ src/gnome/Makefile.in 2007-02-19 10:54:52.311791197 +0100
263
include ../Makefile.common
265
-LIBNAME = libgnomeada$(SO_EXT)
266
-SONAME = libgnomeada-$(MAJOR).$(MINOR)$(SO_EXT).$(MICRO)
267
-ARCHIVENAME = libgnomeada.a
268
+LIBNAME = libgnomeada$(MAJOR)$(SO_EXT)
269
+SONAME = libgnomeada$(SO_EXT).$(MAJOR).$(MINOR)
270
+ARCHIVENAME = libgnomeada$(MAJOR).a
271
GNOME_LIBS = @GNOME_LIBS@
273
ifeq ($(HAVE_GNOME),True)
280
@if [ -f ../.devel ]; then \
281
- $(GNATMAKE) -c $(GNATFLAGS_DEVEL) $(FPIC) -I.. -aO../lib-obj make_gnome; \
283
+ $(GNATMAKE) -c $(GNATFLAGS_DEVEL) $(FPIC) \
284
+ -aI.. -aI../.. -aO../../$(LIB_DIR) make_gnome; \
286
- $(GNATMAKE) -c $(GNATFLAGS) $(FPIC) -I.. -aO../lib-obj make_gnome; \
288
+ $(GNATMAKE) -c $(GNATFLAGS) $(FPIC) \
289
+ -aI.. -aI../.. -aO../../$(LIB_DIR) make_gnome; \
293
- $(CC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
294
- $(SO_OPTS)$(SONAME) gnome.o gnome-*.o bonobo*.o \
295
- $(GTK_LIBS) $(GNOME_LIBS)
296
+ $(ADAC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
297
+ $(SO_OPTS)$(SONAME) \
298
+ $(LIB_DIR)/gnome.o $(LIB_DIR)/gnome-*.o $(LIB_DIR)/bonobo*.o \
299
+ $(GTK_LIBS) $(GNOME_LIBS) -lgnat -L.. -lgtkada$(MAJOR)
301
$(LN) $(SONAME) $(LIBNAME)
302
- -@if [ ! -f ../.devel ]; then \
303
- strip $(LIBNAME); \
304
- $(CHMOD) +x $(LIBNAME); \
307
$(ARCHIVENAME): gnome
308
- $(AR) $(ARFLAGS) $(ARCHIVENAME) gnome.o gnome-*.o bonobo*.o
309
+ $(AR) $(ARFLAGS) $(ARCHIVENAME) \
310
+ $(LIB_DIR)/gnome.o $(LIB_DIR)/gnome-*.o $(LIB_DIR)/bonobo*.o
311
if [ -f /usr/bin/$(RANLIB) -o -f /bin/$(RANLIB) ]; then \
312
$(RANLIB) $(ARCHIVENAME); \
319
- gnatmake -gnaty make_gnome `gtkada-config` -largs -lgnomeada
320
+ gnatmake -gnaty make_gnome `gtkada$(MAJOR)-config` -largs -lgnomeada
323
-$(RM) *.o *.ali *~ core
324
Index: src/opengl/Makefile.in
325
===================================================================
326
--- src/opengl/Makefile.in.orig 2007-02-19 10:54:39.415160651 +0100
327
+++ src/opengl/Makefile.in 2007-02-19 10:54:52.379794522 +0100
330
CFLAGS = @CFLAGS@ -Wall @GTK_CFLAGS@ -I. $(FPIC)
332
-SONAME = libgtkada_gl-$(MAJOR).$(MINOR)$(SO_EXT).$(MICRO)
333
-LIBNAME = libgtkada_gl$(SO_EXT)
334
-ARCHIVENAME = libgtkada_gl.a
335
+SONAME = libgtkada_gl$(SO_EXT).$(MAJOR).$(MINOR)
336
+LIBNAME = libgtkada$(MAJOR)_gl$(SO_EXT)
337
+ARCHIVENAME = libgtkada$(MAJOR)_gl.a
339
ifeq ($(HAVE_OPENGL),True)
340
-OPENGL_C_OBJECTS=gtkglarea.o gdkgl.o
341
-OPENGL_SOURCES=gdk-gl.adb gtk-glarea.adb
342
-OPENGL_OBJECTS=$(OPENGL_SOURCES:%.adb=%.o)
343
+OPENGL_C_OBJECTS=$(LIB_DIR)/gtkglarea.o $(LIB_DIR)/gdkgl.o
344
+OPENGL_SOURCES=gdk-gl.ads gtk-glarea.ads gl_h.ads glu_h.ads
345
+OPENGL_OBJECTS=$(OPENGL_SOURCES:%.ads=$(LIB_DIR)/%.o)
346
OPENGL_LIBS=@GL_LIBS@
347
OPENGL_FLAGS=@GL_CFLAGS@
352
$(LIBNAME):: $(OPENGL_OBJECTS) $(OPENGL_C_OBJECTS)
353
- $(CC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
354
+ $(ADAC) -shared $(FPIC) $(OS_SPECIFIC_LINK_OPTIONS) -o $(SONAME) \
355
$(SO_OPTS)$(SONAME) $(OPENGL_OBJECTS) $(OPENGL_C_OBJECTS) \
356
- @GTK_LIBS@ -L.. -lgtkada $(OPENGL_LIBS)
357
+ @GTK_LIBS@ -L.. -lgtkada$(MAJOR) $(OPENGL_LIBS) -lgnat
359
$(LN) $(SONAME) $(LIBNAME)
360
- -@if [ ! -f ../.devel ]; then \
361
- strip $(LIBNAME); \
364
$(ARCHIVENAME):: $(OPENGL_OBJECTS) $(OPENGL_C_OBJECTS)
365
- $(AR) $(ARFLAGS) $(ARCHIVENAME) gdk*.o gtk*.o
366
+ $(AR) $(ARFLAGS) $(ARCHIVENAME) $^
367
if [ -f /usr/bin/$(RANLIB) -o -f /bin/$(RANLIB) ]; then \
368
$(RANLIB) $(ARCHIVENAME); \
371
-$(OPENGL_OBJECTS):: force
372
+$(LIB_DIR)/%.o: %.adb | $(LIB_DIR)
373
+ @if [ -f ../.devel ]; then \
375
+ $(GNATMAKE) -aI../.. -aO../../$(LIB_DIR) $(GNATFLAGS_DEVEL) $(FPIC) -c ../$<; \
378
+ $(GNATMAKE) -aI../.. -aO../../$(LIB_DIR) $(GNATFLAGS) $(FPIC) -c ../$<; \
381
+$(LIB_DIR)/%.o: %.ads | $(LIB_DIR)
382
@if [ -f ../.devel ]; then \
383
- $(GNATMAKE) -I.. -aO../lib-obj $(GNATFLAGS_DEVEL) $(FPIC) -c $(patsubst %.o,%.adb,$@); \
385
+ $(GNATMAKE) -aI../.. -aO../../$(LIB_DIR) $(GNATFLAGS_DEVEL) $(FPIC) -c ../$<; \
387
- $(GNATMAKE) -I.. -aO../lib-obj $(GNATFLAGS) $(FPIC) -c $(patsubst %.o,%.adb,$@); \
389
+ $(GNATMAKE) -aI../.. -aO../../$(LIB_DIR) $(GNATFLAGS) $(FPIC) -c ../$<; \
392
-gtkglarea.o: gtkglarea.h gtkglarea.c
393
- $(CC) -c $(CFLAGS) $(OPENGL_FLAGS) gtkglarea.c
394
-gdkgl.o: gdkgl.h gdkgl.c
395
- $(CC) -c $(CFLAGS) $(OPENGL_FLAGS) gdkgl.c
396
+$(LIB_DIR)/%.o: %.c %.h | $(LIB_DIR)
397
+ $(CC) -c $(CFLAGS) $(OPENGL_FLAGS) $< -o $@
403
-${RM} *.o *.ali *~ b_*.c b~*.ad? core
404
Index: src/gtkextra/Makefile.in
405
===================================================================
406
--- src/gtkextra/Makefile.in.orig 2007-02-19 10:54:39.495164563 +0100
407
+++ src/gtkextra/Makefile.in 2007-02-19 10:54:52.447797847 +0100
409
gtkplotcanvastext.c gtkplotcanvasplot.c gtkplotcanvaspixmap.c \
410
gtkplotcanvasline.c gtkplotcanvasellipse.c gtkplotcanvasrectangle.c
413
+OBJ=${SRC:%.c=$(LIB_DIR)/%.o}
422
- $(CC) -c $(ALL_CFLAGS) $<
423
+$(LIB_DIR)/%.o: %.c %.h | $(LIB_DIR)
424
+ $(CC) -c $(ALL_CFLAGS) $< -o $@