]> ncurses.scripts.mit.edu Git - ncurses.git/blob - Ada95/src/Makefile.in
ncurses 6.2 - patch 20200829
[ncurses.git] / Ada95 / src / Makefile.in
1 ##############################################################################
2 # Copyright 2018-2019,2020 Thomas E. Dickey                                  #
3 # Copyright 1999-2016,2018 Free Software Foundation, Inc.                    #
4 #                                                                            #
5 # Permission is hereby granted, free of charge, to any person obtaining a    #
6 # copy of this software and associated documentation files (the "Software"), #
7 # to deal in the Software without restriction, including without limitation  #
8 # the rights to use, copy, modify, merge, publish, distribute, distribute    #
9 # with modifications, sublicense, and/or sell copies of the Software, and to #
10 # permit persons to whom the Software is furnished to do so, subject to the  #
11 # following conditions:                                                      #
12 #                                                                            #
13 # The above copyright notice and this permission notice shall be included in #
14 # all copies or substantial portions of the Software.                        #
15 #                                                                            #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
19 # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
21 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
22 # DEALINGS IN THE SOFTWARE.                                                  #
23 #                                                                            #
24 # Except as contained in this notice, the name(s) of the above copyright     #
25 # holders shall not be used in advertising or otherwise to promote the sale, #
26 # use or other dealings in this Software without prior written               #
27 # authorization.                                                             #
28 ##############################################################################
29 #
30 #  Author:  Juergen Pfeifer, 1996
31 #
32 #  $Id: Makefile.in,v 1.93 2020/08/29 17:01:01 tom Exp $
33 #
34 .SUFFIXES:
35
36 SHELL           = @SHELL@
37 VPATH           = @srcdir@
38 THIS            = Makefile
39
40 ADA_MFLAGS      = @cf_cv_makeflags@
41 @SET_MAKE@
42
43 MODEL           = ../../@DFT_OBJ_SUBDIR@
44
45 DESTDIR         = @DESTDIR@
46
47 top_srcdir      = @top_srcdir@
48 srcdir          = @srcdir@
49 prefix          = @prefix@
50 exec_prefix     = @exec_prefix@
51 includedir      = @includedir@
52 libdir          = @libdir@
53
54 LIBDIR          = $(DESTDIR)$(libdir)
55 ADA_INCLUDE     = $(DESTDIR)@ADA_INCLUDE@
56 ADA_OBJECTS     = $(DESTDIR)@ADA_OBJECTS@
57
58 INSTALL         = @INSTALL@ @INSTALL_OPT_O@
59 INSTALL_LIB     = @INSTALL@ @INSTALL_LIB@
60
61 AR              = @AR@
62 ARFLAGS         = @ARFLAGS@
63 AWK             = @AWK@
64 LN_S            = @LN_S@
65
66 CC              = @CC@
67 CFLAGS          = @CFLAGS@ @EXTRA_CFLAGS@
68
69 CPPFLAGS        = @ACPPFLAGS@ @CPPFLAGS@ \
70                   -DHAVE_CONFIG_H -I$(srcdir)
71
72 CCFLAGS         = $(CPPFLAGS) $(CFLAGS)
73
74 CFLAGS_NORMAL   = $(CCFLAGS) -DNCURSES_STATIC
75 CFLAGS_DEBUG    = $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
76 CFLAGS_PROFILE  = $(CCFLAGS) -DNCURSES_STATIC -pg
77 CFLAGS_SHARED   = $(CCFLAGS) @CC_SHARED_OPTS@
78
79 CFLAGS_DEFAULT  = $(CFLAGS_@DFT_UPR_MODEL@)
80
81 LINK            = $(CC)
82 LDFLAGS         = @LDFLAGS@ @LD_MODEL@ @LIBS@
83
84 RANLIB          = @RANLIB@
85
86 ################################################################################
87 ADA             = @cf_ada_compiler@
88 ADAPREP         = gnatprep
89 ADAFLAGS        = @ADAFLAGS@ -I. -I$(srcdir)
90
91 LIB_NAME        = @ADA_LIBNAME@
92 SONAME          = @ADA_SHAREDLIB@
93
94 GNAT_PROJECT    = @ADA_LIBNAME@.gpr
95
96 # build/source are the Ada95 tree
97 BUILD_DIR       = ..
98 SOURCE_DIR      = ..
99
100 BUILD_DIR_LIB   = $(BUILD_DIR)/lib
101 SOURCE_DIR_SRC  = $(SOURCE_DIR)/src
102
103 ADAMAKE         = @cf_ada_make@
104 ADAMAKEFLAGS    = \
105         -P$(GNAT_PROJECT) \
106         -XBUILD_DIR=`cd $(BUILD_DIR);pwd` \
107         -XSOURCE_DIR=`cd $(SOURCE_DIR);pwd` \
108         -XSOURCE_DIR2=`cd $(srcdir);pwd` \
109         -XLIB_NAME=$(LIB_NAME) \
110         -XSONAME=$(SONAME)
111
112 CARGS           = -cargs $(ADAFLAGS)
113 LARGS           =
114
115 STATIC_LIBNAME  = lib$(LIB_NAME).a
116 SHARED_LIBNAME  = $(SONAME)
117 SHARED_SYMLINK  = lib$(LIB_NAME).so
118
119 ALIB            = @cf_ada_package@
120 ABASE           = $(ALIB)-curses
121 ################################################################################
122 GENERATED_SOURCES=$(ABASE).ads                          \
123                   $(ABASE).adb                          \
124                   $(ABASE)-aux.ads                      \
125                   $(ABASE)-trace.ads                    \
126                   $(ABASE)-menus.ads                    \
127                   $(ABASE)-forms.ads                    \
128                   $(ABASE)-mouse.ads                    \
129                   $(ABASE)-panels.ads                   \
130                   $(ABASE)-menus-menu_user_data.ads     \
131                   $(ABASE)-menus-item_user_data.ads     \
132                   $(ABASE)-forms-form_user_data.ads     \
133                   $(ABASE)-forms-field_types.ads        \
134                   $(ABASE)-forms-field_user_data.ads    \
135                   $(ABASE)-panels-user_data.ads
136 ################################################################################
137 LIBOBJS=$(ALIB).o                                       \
138         $(ABASE)-aux.o                                  \
139         $(ABASE).o                                      \
140         $(ABASE)-terminfo.o                             \
141         $(ABASE)-termcap.o                              \
142         $(ABASE)-putwin.o                               \
143         $(ABASE)-trace.o                                \
144         $(ABASE)-mouse.o                                \
145         $(ABASE)-panels.o                               \
146         $(ABASE)-menus.o                                \
147         $(ABASE)-forms.o                                \
148         $(ABASE)-forms-field_types.o                    \
149         $(ABASE)-forms-field_types-alpha.o              \
150         $(ABASE)-forms-field_types-alphanumeric.o       \
151         $(ABASE)-forms-field_types-intfield.o           \
152         $(ABASE)-forms-field_types-numeric.o            \
153         $(ABASE)-forms-field_types-regexp.o             \
154         $(ABASE)-forms-field_types-enumeration.o        \
155         $(ABASE)-forms-field_types-ipv4_address.o       \
156         $(ABASE)-forms-field_types-user.o               \
157         $(ABASE)-forms-field_types-user-choice.o        \
158         $(ABASE)-text_io.o                              \
159         $(ABASE)-text_io-aux.o
160
161 # Ada object files for generic packages. Since gnat 3.10 they are
162 # also compiled
163 GENOBJS=$(ABASE)-menus-menu_user_data.o                 \
164         $(ABASE)-menus-item_user_data.o                 \
165         $(ABASE)-forms-form_user_data.o                 \
166         $(ABASE)-forms-field_user_data.o                \
167         $(ABASE)-forms-field_types-enumeration-ada.o    \
168         $(ABASE)-panels-user_data.o                     \
169         $(ABASE)-text_io-integer_io.o                   \
170         $(ABASE)-text_io-float_io.o                     \
171         $(ABASE)-text_io-fixed_io.o                     \
172         $(ABASE)-text_io-decimal_io.o                   \
173         $(ABASE)-text_io-enumeration_io.o               \
174         $(ABASE)-text_io-modular_io.o                   \
175         $(ABASE)-text_io-complex_io.o
176
177 all ::  $(BUILD_DIR_LIB)/$(STATIC_LIBNAME)
178         @echo done
179
180 $(ADA_INCLUDE) \
181 $(ADA_OBJECTS) \
182 $(LIBDIR) \
183 $(BUILD_DIR_LIB) :
184         mkdir -p $@
185
186 $(GENERATED_SOURCES) :
187         cd ../gen; $(MAKE) $(ADA_MFLAGS)
188
189 sources : $(GENERATED_SOURCES)
190         @echo made $@
191
192 libs \
193 install \
194 install.libs :: \
195                 $(BUILD_DIR_LIB)/$(STATIC_LIBNAME)
196         @echo made $(STATIC_LIBNAME)
197
198 #OLD:BEGIN
199 install \
200 install.libs :: \
201                 $(BUILD_DIR_LIB)/$(STATIC_LIBNAME) \
202                 $(ADA_OBJECTS)
203         @$(INSTALL_LIB) \
204                 $(BUILD_DIR_LIB)/$(STATIC_LIBNAME) \
205                 $(ADA_OBJECTS)
206
207 uninstall \
208 uninstall.libs ::
209         @rm -f $(ADA_OBJECTS)/$(STATIC_LIBNAME)
210 #OLD:END
211
212 mostlyclean ::
213         rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
214
215 clean :: mostlyclean
216         rm -f $(ABASE)-trace.adb
217
218 distclean :: clean
219         rm -f Makefile library.gpr
220
221 realclean :: distclean
222
223 BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(ABASE).adb
224
225 $(ABASE)-trace.adb : $(srcdir)/$(ABASE)-trace.adb_p
226         rm -f $@
227         $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ @GNATPREP_OPTS@ $(srcdir)/$(ABASE)-trace.adb_p $@
228
229 ###############################################################################
230 # Use these definitions when building a shared library.
231 SHARED_C_OBJS   = c_varargs_to_ada.o c_threaded_variables.o ncurses_compat.o
232 SHARED_OBJS     = $(SHARED_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
233
234 c_varargs_to_ada.o :    $(srcdir)/c_varargs_to_ada.c
235         $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_varargs_to_ada.c
236
237 c_threaded_variables.o : $(srcdir)/c_threaded_variables.c
238         $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_threaded_variables.c
239
240 ncurses_compat.o :      $(srcdir)/ncurses_compat.c
241         $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/ncurses_compat.c
242
243 ###############################################################################
244 # Use these definitions when building a static library.
245 STATIC_C_OBJS   = static_c_varargs_to_ada.o static_c_threaded_variables.o static_ncurses_compat.o
246 STATIC_OBJS     = $(STATIC_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
247
248 static_c_varargs_to_ada.o :     $(srcdir)/c_varargs_to_ada.c
249         $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_varargs_to_ada.c
250
251 static_c_threaded_variables.o : $(srcdir)/c_threaded_variables.c
252         $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_threaded_variables.c
253
254 static_ncurses_compat.o :       $(srcdir)/ncurses_compat.c
255         $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/ncurses_compat.c
256
257 ###############################################################################
258
259 @USE_OLD_MAKERULES@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
260 @USE_OLD_MAKERULES@             $(BUILD_DIR_LIB) \
261 @USE_OLD_MAKERULES@             $(STATIC_OBJS)
262 @USE_OLD_MAKERULES@     $(AR) $(ARFLAGS) $@ $(STATIC_OBJS)
263
264 $(BUILD_DIR)/static-ali : ; mkdir -p $@
265 $(BUILD_DIR)/static-obj : ; mkdir -p $@
266
267 STATIC_DIRS = \
268         $(BUILD_DIR_LIB) \
269         $(BUILD_DIR)/static-ali \
270         $(BUILD_DIR)/static-obj
271
272 @USE_GNAT_PROJECTS@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
273 @USE_GNAT_PROJECTS@             $(ABASE)-trace.adb \
274 @USE_GNAT_PROJECTS@             $(STATIC_C_OBJS) \
275 @USE_GNAT_PROJECTS@             $(STATIC_DIRS)
276 @USE_GNAT_PROJECTS@     @cf_ada_config@gprconfig --batch --config=Ada --config=C,,,,@cf_ada_config_C@
277 @USE_GNAT_PROJECTS@     -rm -f $(GNAT_PROJECT)
278 @USE_GNAT_PROJECTS@     $(SHELL) $(srcdir)/library-cfg.sh static library.gpr $(CFLAGS_NORMAL) >$(GNAT_PROJECT)
279 @USE_GNAT_PROJECTS@     @echo "Using GNAT Project:"
280 @USE_GNAT_PROJECTS@     @-$(SHELL) -c "diff -c library.gpr $(GNAT_PROJECT); exit 0"
281 @USE_GNAT_PROJECTS@
282 @USE_GNAT_PROJECTS@     gprbuild -p $(ADAMAKEFLAGS) -XLIB_KIND=static
283 @USE_GNAT_PROJECTS@
284 @USE_GNAT_PROJECTS@     -rm -f $(GNAT_PROJECT)
285
286 #OLD:BEGIN
287 @USE_GNAT_LIBRARIES@install \
288 @USE_GNAT_LIBRARIES@install.libs :: \
289 @USE_GNAT_LIBRARIES@            $(ADA_OBJECTS)
290 @USE_GNAT_LIBRARIES@    $(INSTALL_LIB) \
291 @USE_GNAT_LIBRARIES@            $(BUILD_DIR)/static-ali/*.ali \
292 @USE_GNAT_LIBRARIES@            $(ADA_OBJECTS)
293 #OLD:END
294 # While gprinstall is the "recommended" tool, it is rather brittle, with
295 # hardcoded assumptions about the use of the install-name which prevent using
296 # that tool to make the directory layout of older versions of the AdaCurses
297 # package.
298 #
299 # In principle, one might just do
300 #       --install-name=""
301 # and in dry-run mode, gprinstall pretends to handle it properly (trimming the
302 # empty directory level), but without the dry-run option, it fails (tested
303 # with gnat 10.1.1).
304 #NEW:BEGIN
305 #@USE_GNAT_LIBRARIES@install \
306 #@USE_GNAT_LIBRARIES@install.libs ::
307 #@USE_GNAT_LIBRARIES@   @cf_ada_config@gprconfig --batch --config=Ada --config=C,,,,@cf_ada_config_C@
308 #@USE_GNAT_LIBRARIES@   -rm -f $(GNAT_PROJECT)
309 #@USE_GNAT_LIBRARIES@   $(SHELL) $(srcdir)/library-cfg.sh static library.gpr $(CFLAGS_NORMAL) >$(GNAT_PROJECT)
310 #@USE_GNAT_LIBRARIES@   @echo "Using GNAT Project:"
311 #@USE_GNAT_LIBRARIES@   @-$(SHELL) -c "diff -c library.gpr $(GNAT_PROJECT); exit 0"
312 #@USE_GNAT_LIBRARIES@
313 #@USE_GNAT_LIBRARIES@   gprinstall -m -v -f -p \
314 #@USE_GNAT_LIBRARIES@           --prefix="$(DESTDIR)$(prefix)" \
315 #@USE_GNAT_LIBRARIES@           $(ADAMAKEFLAGS) -XLIB_KIND=static \
316 #@USE_GNAT_LIBRARIES@           --lib-subdir="$(DESTDIR)$(prefix)"/lib \
317 #@USE_GNAT_LIBRARIES@           --ali-subdir="$(DESTDIR)$(prefix)"/lib/ada/adalib \
318 #@USE_GNAT_LIBRARIES@           --sources-subdir="$(DESTDIR)$(prefix)"/share/ada/adainclude
319 #@USE_GNAT_LIBRARIES@
320 #@USE_GNAT_LIBRARIES@   -rm -f $(GNAT_PROJECT)
321 #NEW:END
322
323 #OLD:BEGIN
324 uninstall \
325 uninstall.libs ::
326         @rm -f $(ADA_OBJECTS)/$(STATIC_LIBNAME)
327 #OLD:END
328 #NEW:BEGIN
329 #@USE_GNAT_LIBRARIES@uninstall \
330 #@USE_GNAT_LIBRARIES@uninstall.libs ::
331 #@USE_GNAT_LIBRARIES@   @cf_ada_config@gprconfig --batch --config=Ada --config=C,,,,@cf_ada_config_C@
332 #@USE_GNAT_LIBRARIES@   -rm -f $(GNAT_PROJECT)
333 #@USE_GNAT_LIBRARIES@   $(SHELL) $(srcdir)/library-cfg.sh static library.gpr $(CFLAGS_NORMAL) >$(GNAT_PROJECT)
334 #@USE_GNAT_LIBRARIES@   @echo "Using GNAT Project:"
335 #@USE_GNAT_LIBRARIES@   @-$(SHELL) -c "diff -c library.gpr $(GNAT_PROJECT); exit 0"
336 #@USE_GNAT_LIBRARIES@
337 #@USE_GNAT_LIBRARIES@   gprinstall -v -f --prefix="$(DESTDIR)$(prefix)" --uninstall $(ADAMAKEFLAGS) -XLIB_KIND=static
338 #@USE_GNAT_LIBRARIES@
339 #@USE_GNAT_LIBRARIES@   -rm -f $(GNAT_PROJECT)
340 #NEW:END
341
342 @USE_GNAT_LIBRARIES@uninstall \
343 @USE_GNAT_LIBRARIES@uninstall.libs ::
344 @USE_GNAT_LIBRARIES@    @$(SHELL) -c 'for name in $(BUILD_DIR)/static-ali/*.ali ; do rm -f $(ADA_OBJECTS)/`basename $$name`; done'
345
346 $(BUILD_DIR)/dynamic-ali : ; mkdir -p $@
347 $(BUILD_DIR)/dynamic-obj : ; mkdir -p $@
348
349 SHARED_DIRS = \
350         $(BUILD_DIR_LIB) \
351         $(BUILD_DIR)/dynamic-ali \
352         $(BUILD_DIR)/dynamic-obj
353
354 @MAKE_ADA_SHAREDLIB@all :: $(BUILD_DIR_LIB)/$(SHARED_LIBNAME)
355 @MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: \
356 @MAKE_ADA_SHAREDLIB@            $(ABASE)-trace.adb \
357 @MAKE_ADA_SHAREDLIB@            $(SHARED_DIRS) \
358 @MAKE_ADA_SHAREDLIB@            $(SHARED_OBJS)
359 @MAKE_ADA_SHAREDLIB@    cp $(SHARED_OBJS) $(BUILD_DIR)/dynamic-obj/
360 @MAKE_ADA_SHAREDLIB@    @cf_ada_config@gprconfig --batch --config=Ada --config=C,,,,@cf_ada_config_C@
361 @MAKE_ADA_SHAREDLIB@    -rm -f $(GNAT_PROJECT)
362 @MAKE_ADA_SHAREDLIB@    $(SHELL) $(srcdir)/library-cfg.sh dynamic library.gpr $(CFLAGS_SHARED) >$(GNAT_PROJECT)
363 @MAKE_ADA_SHAREDLIB@    @echo "Making Ada shared-lib:"
364 @MAKE_ADA_SHAREDLIB@    @-$(SHELL) -c "diff -c library.gpr $(GNAT_PROJECT); exit 0"
365 @MAKE_ADA_SHAREDLIB@    $(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=dynamic
366 @MAKE_ADA_SHAREDLIB@    -rm -f $(GNAT_PROJECT)
367
368 install \
369 install.libs :: $(ADA_INCLUDE)
370         $(INSTALL_LIB) \
371                 $(SOURCE_DIR_SRC)/*.ad[sb] \
372                 $(ADA_INCLUDE)
373
374 install \
375 install.libs :: $(ADA_INCLUDE)
376         $(INSTALL_LIB) \
377                 $(GENERATED_SOURCES) \
378                 $(ADA_INCLUDE)
379
380 uninstall \
381 uninstall.libs ::
382         $(SHELL) -c 'for name in $(SOURCE_DIR_SRC)/*.ad[sb] $(GENERATED_SOURCES); do rm -f $(ADA_INCLUDE)/`basename $$name`; done'
383
384 @MAKE_ADA_SHAREDLIB@install \
385 @MAKE_ADA_SHAREDLIB@install.libs :: $(ADA_OBJECTS) $(LIBDIR)
386 @MAKE_ADA_SHAREDLIB@    $(INSTALL_LIB) \
387 @MAKE_ADA_SHAREDLIB@            $(BUILD_DIR)/dynamic-ali/* \
388 @MAKE_ADA_SHAREDLIB@            $(ADA_OBJECTS)
389 @MAKE_ADA_SHAREDLIB@    $(INSTALL_LIB) \
390 @MAKE_ADA_SHAREDLIB@            $(BUILD_DIR_LIB)/$(SHARED_LIBNAME) \
391 @MAKE_ADA_SHAREDLIB@            $(LIBDIR)
392 @MAKE_ADA_SHAREDLIB@    cd $(LIBDIR) && $(LN_S) $(SHARED_LIBNAME) $(SHARED_SYMLINK)
393 @MAKE_ADA_SHAREDLIB@
394 @MAKE_ADA_SHAREDLIB@uninstall \
395 @MAKE_ADA_SHAREDLIB@uninstall.libs ::
396 @MAKE_ADA_SHAREDLIB@    $(SHELL) -c 'for name in $(BUILD_DIR)/dynamic-ali/* ; do rm -f $(ADA_OBJECTS)/`basename $$name`; done'
397 @MAKE_ADA_SHAREDLIB@
398 @MAKE_ADA_SHAREDLIB@uninstall \
399 @MAKE_ADA_SHAREDLIB@uninstall.libs ::
400 @MAKE_ADA_SHAREDLIB@    rm -f $(LIBDIR)/$(SHARED_SYMLINK)
401 @MAKE_ADA_SHAREDLIB@    rm -f $(LIBDIR)/$(SHARED_LIBNAME)
402
403 #rm-docs :
404 #       gnatdoc --enable-build $(ADAMAKEFLAGS) -XLIB_KIND=static
405
406 clean ::
407         -rm -f default.cgpr
408         -rm -rf $(BUILD_DIR)/*-ali
409         -rm -rf $(BUILD_DIR)/*-obj
410         -rm -rf $(BUILD_DIR_LIB)
411 #@USE_GNAT_PROJECTS@    gprclean $(ADAMAKEFLAGS) -XLIB_KIND=static
412 #@MAKE_ADA_SHAREDLIB@   gprclean $(ADAMAKEFLAGS) -XLIB_KIND=dynamic