OSDN Git Service

Change various Makefile.in to use standard autoconf variables.
[pf3gnuchains/sourceware.git] / itcl / itk / win / Makefile.in
1 # This file is CYGNUS LOCAL.  It is a copy of makefile.vc modified for
2 # GNU make.
3 #  
4 # Visual C++ 4.0 makefile
5 #
6 # Copyright (c) 1993-1996 Lucent Technologies
7 #
8 # See the file "license.terms" for information on usage and redistribution
9 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
11 prefix = @prefix@
12 exec_prefix = @exec_prefix@
13 VPATH = @srcdir@:@srcdir@/../generic:@srcdir@/../unix
14 srcdir = @srcdir@
15 libdir=@libdir@
16 bindir=@bindir@
17 includedir=@includedir@
18 mandir=@mandir@
19 datadir=@datadir@
20
21 CC = @CC@
22 CFLAGS = @CFLAGS@
23 NM = @NM@
24 AS = @AS@
25 LD = @LD@
26 DLLTOOL = @DLLTOOL@
27 WINDRES = @WINDRES@
28 OBJEXT = @OBJEXT@
29
30 DLL_LDFLAGS = @DLL_LDFLAGS@
31 DLL_LDLIBS  = @DLL_LDLIBS@
32
33 INSTALL         =       @INSTALL@
34 INSTALL_PROGRAM =       @INSTALL_PROGRAM@
35 INSTALL_DATA    =       @INSTALL_DATA@
36
37 #
38 # Project directories
39 #
40 # ROOT    = top of source tree
41 #
42 # TMPDIR  = location where .obj files should be stored during build
43 #
44
45 ROOT            = @ITK_SRC_DIR@
46 TMPDIR          = .
47
48 TCLLIBDIR       = @TCL_BIN_DIR@
49 TKLIBDIR        = @TK_BIN_DIR@
50 ITCLLIBDIR      = @ITCL_BIN_DIR@
51
52 TCLSRCDIR     = @TCL_SRC_DIR@
53 TKSRCDIR      = @TK_SRC_DIR@
54 ITCLSRCDIR    = @ITCL_SRC_DIR@
55
56
57 SRC_INC_DIR     =       $(ROOT)/generic
58 SRC_WIN_DIR     =       $(ROOT)/win
59 SRC_UNIX_DIR    =       $(ROOT)/unix
60 SRC_LIB_DIR     =       $(ROOT)/library
61 SRC_MAN_DIR     =       $(ROOT)/doc
62
63 #
64 # Here are all the built files we will need:
65 #
66
67 ITCL_VERSION = @ITCL_VERSION@
68 VERSION = 30
69
70 CYGITKLIB       = @CYGITKLIB@
71 CYGITKDLL       = @CYGITKDLL@
72 CYGITKWISH      = @CYGITKWISH@
73 CYGITKDEF       = @CYGITKDEF@
74 CYGITKTEST      = @CYGITKTEST@
75 CYGIMPORTLIB    = @CYGIMPORTLIB@
76 CYGITKRES       = @CYGITKRES@
77 CYGITKWISHRES   = @CYGITKWISHRES@
78
79 SNITKLIB        = @SNITKLIB@
80 SNITKDLL        = @SNITKDLL@
81 SNITKWISH       = @SNITKWISH@
82 SNITKDEF        = @SNITKDEF@
83 SNITKTEST       = @SNITKTEST@
84 SNIMPORTLIB     = @SNIMPORTLIB@
85 SNITKRES        = @SNITKRES@
86 SNITKWISHRES    = @SNITKWISHRES@
87
88 ITKLIB          = @ITKLIB@
89 ITKDLL          = @ITKDLL@
90 ITKWISH         = @ITKWISH@
91 ITKDEF          = @ITKDEF@
92 ITKTEST         = @ITKTEST@
93 ITKIMPORTLIB    = @ITKIMPORTLIB@
94 ITKRES          = @ITKRES@
95 ITKWISHRES      = @ITKWISHRES@
96
97
98 # Directory in which to install the library of Itcl scripts and demos
99 # (note: you can set the ITK_LIBRARY environment variable at run-time to
100 # override the compiled-in location):
101 ITK_LIBRARY =   $(prefix)/share/itk$(ITCL_VERSION)
102
103 # Directory in which to install the archive libitcl.a:
104 INSTALL_LIB_DIR =       $(libdir)
105
106 # Directory in which to install the program itclsh:
107 INSTALL_BIN_DIR =       $(bindir)
108
109 # Directory in which to install the include file itcl.h:
110 INSTALL_INCLUDE_DIR =   $(includedir)
111
112 # Top-level directory for manual entries:
113 INSTALL_MAN_DIR =       $(mandir)
114
115 # Directory in which to install manual entry for itclsh:
116 INSTALL_MAN1_DIR =      $(INSTALL_MAN_DIR)/man1
117
118 # Directory in which to install manual entries for Itcl's C library
119 # procedures:
120 INSTALL_MAN3_DIR =      $(INSTALL_MAN_DIR)/man3
121
122 # Directory in which to install manual entries for the built-in
123 # Tcl commands implemented by Itcl:
124 INSTALL_MANN_DIR =      $(INSTALL_MAN_DIR)/mann
125
126
127 # Comment the following line to compile with symbols
128 NODEBUG=1
129
130 # uncomment the following two lines to compile with TCL_MEM_DEBUG
131 #DEBUGDEFINES   = -DTCL_MEM_DEBUG
132
133 ITKWISHOBJS = \
134         $(TKLIBDIR)/tkConsole.$(OBJEXT) \
135         $(TMPDIR)/winMain.$(OBJEXT)
136
137 TKTESTOBJS = \
138         $(TMPDIR)/tkConsole.$(OBJEXT) \
139         $(TMPDIR)/tkTest.$(OBJEXT) \
140         $(TMPDIR)/tkSquare.$(OBJEXT) \
141         $(TMPDIR)/testMain.$(OBJEXT)
142
143 ITKOBJS = \
144         $(TMPDIR)/itk_archetype.$(OBJEXT) \
145         $(TMPDIR)/itk_cmds.$(OBJEXT) \
146         $(TMPDIR)/itk_option.$(OBJEXT) \
147         $(TMPDIR)/itk_util.$(OBJEXT) \
148         $(TMPDIR)/dllEntryPoint.$(OBJEXT)
149
150 DUMPEXTS = $(TCLLIBDIR)/dumpexts.exe
151
152 TCLLIB          = @TCL_LIB_FILE@
153 TCL_BUILD_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
154 TCL_LIB_FULL_PATH = @TCL_LIB_FULL_PATH@
155 TKLIB           = @TK_LIB_FILE@
156 TK_BUILD_LIB_SPEC = @TK_BUILD_LIB_SPEC@
157 TK_LIB_FULL_PATH = @TK_LIB_FULL_PATH@
158 ITCLLIB         = @ITCL_LIB_FILE@
159 ITCL_BUILD_LIB_SPEC = @ITCL_BUILD_LIB_SPEC@
160 ITCL_LIB_FULL_PATH = @ITCL_LIB_FULL_PATH@
161
162 TCL_INCLUDES  = -I$(TCLSRCDIR)/generic -I$(TCLSRCDIR)/win
163 TK_INCLUDES   = -I$(TKSRCDIR)/generic -I$(TKSRCDIR)/win -I$(TKSRCDIR)/xlib
164 ITCL_INCLUDES = -I$(ITCLSRCDIR)/generic -I$(ITCLSRCDIR)/win
165 ITK_INCLUDES  = -I$(SRC_INC_DIR) -I$(SRC_WIN_DIR) $(ITCL_INCLUDES) \
166                 $(TCL_INCLUDES) $(TK_INCLUDES) 
167
168 ITK_DEFINES     = -D__WIN32__ $(DEBUGDEFINES) -DDLL_BUILD -DBUILD_itk -D_DLL
169 ITK_CFLAGS      = $(ITK_INCLUDES) $(ITK_DEFINES) $(CFLAGS)
170
171 CPU                = i386
172
173 ######################################################################
174 # Link flags
175 ######################################################################
176
177 conlflags = -Wl,--subsystem,console -mwindows
178 guilflags = -mwindows
179 dlllflags =
180
181 baselibs   = @BASELIBS@
182 winlibs    = @WINLIBS@
183 libcdll    = @LIBCDLL@
184
185 guilibs    = $(baselibs) $(winlibs)
186 conlibs    = $(baselibs)
187 guilibsdll = $(libcdll) $(baselibs) $(winlibs)
188 conlibsdll = $(libcdll) $(baselibs)
189
190 #
191 # Targets
192 #
193
194 release:  $(ITKDLL) $(ITKWISH) $(ITKLIB)
195 all:        $(ITKDLL) $(ITKWISH) $(ITKLIB)
196 test:       $(ITKWISH)
197         $(CP) $(TCLLIBDIR)\*.dll
198         $(ITKWISH) <<
199                 cd ../tests
200                 source all
201
202 $(TMPDIR)/$(CYGITKDEF): $(ITKOBJS)
203         echo 'EXPORTS' > tmp.def
204         -for o in $(ITKOBJS); do \
205           $(NM) --extern-only --defined-only $$o | sed -e 's/[^ ]* [^ ]* //' -e 's/^_//' | fgrep -v DllEntryPoint | fgrep -v DllMain | fgrep -v impure_ptr >> tmp.def; \
206         done
207         mv tmp.def $(TMPDIR)/$(CYGITKDEF)
208
209 $(CYGITKDLL): $(ITKOBJS) $(TMPDIR)/$(CYGITKDEF) $(TMPDIR)/$(CYGITKRES)
210         $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,itk.base  \
211                 -o $(CYGITKDLL) $(ITKOBJS)  $(TMPDIR)/$(CYGITKRES) \
212                 $(TKLIBDIR)/$(TKLIB) $(ITCLLIBDIR)/$(ITCLLIB) $(TCLLIBDIR)/$(TCLLIB) \
213                 $(DLL_LDLIBS) -mwindows  -Wl,-e,_DllMain@12  \
214                 -Wl,--image-base,0x66800000
215         $(DLLTOOL) --as=$(AS) --dllname $(CYGITKDLL) --def $(TMPDIR)/$(CYGITKDEF) \
216                 --base-file itk.base --output-exp itk.exp
217         $(CC) -s $(DLL_LDFLAGS) -Wl,--base-file,itk.base -Wl,itk.exp \
218                 -o $(CYGITKDLL) $(ITKOBJS)  \
219                 $(TKLIBDIR)/$(TKLIB) $(ITCLLIBDIR)/$(ITCLLIB) $(TCLLIBDIR)/$(TCLLIB) \
220                 $(DLL_LDLIBS) -mwindows -Wl,-e,_DllMain@12 \
221                 -Wl,--image-base,0x66800000
222         $(DLLTOOL) --as=$(AS) --dllname $(ITKDLL) --def $(TMPDIR)/$(CYGITKDEF) \
223                 --base-file itk.base --output-exp itk.exp
224         $(CC) $(DLL_LDFLAGS) -Wl,itk.exp -o $(CYGITKDLL) $(ITKOBJS) \
225                 $(TKLIBDIR)/$(TKLIB) $(ITCLLIBDIR)/$(ITCLLIB) $(TCLLIBDIR)/$(TCLLIB) \
226                 $(DLL_LDLIBS) -mwindows \
227                 -Wl,-e,_DllMain@12 -Wl,--image-base,0x66800000
228
229 $(CYGITKLIB): $(TMPDIR)/$(CYGITKDEF)
230         $(DLLTOOL) --as=$(AS) --dllname $(ITKDLL) --def $(TMPDIR)/$(CYGITKDEF) \
231                 --output-lib $(CYGITKLIB)
232
233 $(CYGITKWISH): $(ITKWISHOBJS) $(CYGITKLIB) $(TMPDIR)/$(CYGITKWISHRES)
234         $(CC) $(ldebug) $(guilflags) $(ITKWISHOBJS) $(ITK_CFLAGS) $(TMPDIR)/$(CYGITKWISHRES) \
235                 $(ITKLIB) $(TKLIBDIR)/$(TKLIB) \
236                 $(ITCLLIBDIR)/$(ITCLLIB) $(TCLLIBDIR)/$(TCLLIB) \
237                 $(guilibsdll) \
238                 -o $(CYGITKWISH)
239  
240 $(CYGITKTEST): $(ITKTESTOBJS) $(CYGITKLIB) $(TMPDIR)/$(CYGITKWISHRES)
241         $(CC) $(ldebug) $(guilflags) $(WISHOBJS) $(ITK_CFLAGS) $(TMPDIR)/$(CYGITKWISHRES) \
242                 $(CYGITKLIB) $(TKLIBDIR)/$(TKLIB) \
243                 $(ITCLLIBDIR)/$(ITCLLIB) $(TCLLIBDIR)/$(TCLLIB) \
244                 $(guilibsdll) \
245                 -o $(CYGITKTEST)
246
247 $(TMPDIR)/$(CYGITKRES): $(ROOT)/win/rc/itk.rc
248         $(WINDRES) --include $(ROOT)/win/rc --include $(ROOT)/generic \
249                 --include $(ITCLSRCDIR)/generic \
250                 --include $(TCLSRCDIR)/generic --include $(TKSRCDIR)/generic \
251                 --define VS_VERSION_INFO=1 $(ROOT)/win/rc/itk.rc $(TMPDIR)/$(CYGITKRES)
252
253 $(TMPDIR)/$(CYGITKWISHRES): $(ROOT)/win/rc/itkwish.rc
254         $(WINDRES) --include $(ROOT)/win/rc --include $(ITCLSRCDIR)/generic \
255                 --include $(TCLSRCDIR)/generic --include $(TKSRCDIR)/generic\
256                 --include $(ROOT)/generic --define VS_VERSION_INFO=1  \
257                 $(ROOT)/win/rc/itkwish.rc $(TMPDIR)/$(CYGITKWISHRES)
258
259 # Visual C++ specific targets
260
261 $(TMPDIR)/$(SNITKDEF): $(DUMPEXTS) $(ITKOBJS)
262         $(DUMPEXTS) -o $@ $(SNITKDLL) $(ITKOBJS)
263
264 $(SNITKDLL): $(ITKOBJS) $(TMPDIR)/$(SNITKDEF) $(TMPDIR)/$(SNITKRES) $(TCL_LIB_FULL_PATH) \
265                 $(TK_LIB_FULL_PATH) $(ITCL_LIB_FULL_PATH)
266         link.exe -DEBUG -dll -def:$(TMPDIR)/$(SNITKDEF) -NODEFAULTLIB \
267                 -out:$(SNITKDLL) $(guilibsdll) $(ITKOBJS) $(TMPDIR)/$(SNITKRES) \
268                 $(TCL_BUILD_LIB_SPEC) $(TK_BUILD_LIB_SPEC) $(ITCL_BUILD_LIB_SPEC)
269
270 $(SNITKLIB) $(SNIMPORTLIB):
271         cp $(SNIMPORTLIB) $(SNITKLIB)
272
273 $(SNITKWISH): $(ITKWISHOBJS) $(SNITKLIB) $(TMPDIR)/$(SNITKWISHRES) $(TCL_LIB_FULL_PATH) \
274                 $(TK_LIB_FULL_PATH) $(ITCL_LIB_FULL_PATH)
275         link.exe -DEBUG -NODEFAULTLIB -entry:WinMainCRTStartup \
276                 -out:$@ $(guilibsdll) $(ITKWISHOBJS) $(TMPDIR)/$(SNITKWISHRES) \
277                 $(SNITKLIB) $(TCL_BUILD_LIB_SPEC) $(TK_BUILD_LIB_SPEC) \
278                 $(ITCL_BUILD_LIB_SPEC)
279
280 $(SNITKTEST): $(ITKWISHOBJS) $(ITCLTESTOBJS) $(SNITKLIB) $(TMPDIR)/$(SNITKWISHRES) \
281                 $(TCL_LIB_FULL_PATH) $(TK_LIB_FULL_PATH) $(ITCL_LIB_FULL_PATH)
282         link.exe -DEBUG -NODEFAULTLIB -entry:WinMainCRTStartup \
283                 -out $@ $(guilibsdll) $(ITKWISHOBJS) $(TMPDIR)/$(SNITKWISHRES) \
284                 $(SNITKLIB) $(TCL_BUILD_LIB_SPEC) $(TK_BUILD_LIB_SPEC) \
285                 $(ITCL_BUILD_LIB_SPEC)
286
287 $(TMPDIR)/$(SNITKWISHRES):: $(SRC_WIN_DIR)/rc/itkwish.rc
288         rc $(ITK_INCLUDES) -d__WIN32__ -dVS_VERSION_INFO=1 -fo$@ $?
289
290 $(TMPDIR)/$(SNITKRES):: $(SRC_WIN_DIR)/rc/itk.rc
291         rc $(ITK_INCLUDES) -d__WIN32__ -dVS_VERSION_INFO=1 -fo$@ $?
292  
293 #
294 # Special case object file targets
295 #
296
297 $(TMPDIR)/testMain.$(OBJEXT): $(ROOT)/win/winMain.c
298         $(CC) -c $(ITK_CFLAGS) -DTCL_TEST -DTK_TEST -DSTATIC_BUILD -o $@ $?
299
300 $(TMPDIR)/winMain.$(OBJEXT): $(ROOT)/win/winMain.c
301         $(CC) -c $(ITK_CFLAGS) -DSTATIC_BUILD -o $@ $?
302
303 #
304 # Implicit rules
305 #
306
307 $(TMPDIR)/%.$(OBJEXT): $(SRC_INC_DIR)/%.c
308         $(CC) -c $(ITK_CFLAGS) -o $@ $<
309
310 $(TMPDIR)/%.$(OBJEXT): $(SRC_WIN_DIR)/%.c
311         $(CC) -c $(ITK_CFLAGS) -o $@ $<
312
313 clean:
314
315         rm -f $(TMPDIR)/*.$(OBJEXT) $(TMPDIR)/*.exp $(TMPDIR)/*.def 
316         rm -f $(ITKLIB) $(ITKDLL) $(ITKDLL) $(ITKWISH)
317
318
319 Makefile: $(srcdir)/Makefile.in config.status
320         $(SHELL) config.status
321
322 config.status: $(srcdir)/configure
323         ./config.status --recheck
324
325 #----------------------------------------------------------------------
326 #
327 #                       Installation
328 #
329 #----------------------------------------------------------------------
330
331
332 install:: install-basic install-binaries
333         @echo done
334
335 install-binaries::
336         @for i in $(INSTALL_LIB_DIR) $(INSTALL_BIN_DIR) ; \
337             do \
338             if [ ! -d $$i ] ; then \
339                 echo "Making directory $$i"; \
340                 mkdir $$i; \
341                 chmod 755 $$i; \
342                 else true; \
343                 fi; \
344             done;
345         @echo "Installing $(ITKLIB) as $(INSTALL_LIB_DIR)/$(ITKLIB)"
346         @$(INSTALL_DATA) $(ITKLIB) $(INSTALL_LIB_DIR)/$(ITKLIB)
347         @echo "Installing $(ITKWISH) as $(INSTALL_BIN_DIR)/$(ITKWISH)"
348         @$(INSTALL_PROGRAM) $(ITKWISH) $(INSTALL_BIN_DIR)/$(ITKWISH)
349         @echo "Installing $(ITKDLL) as $(INSTALL_BIN_DIR)/$(ITKDLL)"
350         @$(INSTALL_PROGRAM) $(ITKDLL) $(INSTALL_BIN_DIR)/$(ITKDLL)
351
352 #
353 # Basic installation
354 #
355 install-basic:: install-libraries install-headers  \
356         install-man
357
358
359 install-headers:
360         @for i in $(INSTALL_INCLUDE_DIR); \
361             do \
362             if [ ! -d $$i ] ; then \
363                 echo "Making directory $$i"; \
364                 mkdir $$i; \
365                 chmod 755 $$i; \
366                 else true; \
367                 fi; \
368             done;
369         @for i in $(SRC_INC_DIR)/itk.h; \
370             do \
371             echo "Installing $$i"; \
372             $(INSTALL_DATA) $$i $(INSTALL_INCLUDE_DIR); \
373             done;
374
375 install-libraries:
376         @for i in $(prefix)/lib $(ITK_LIBRARY); \
377             do \
378             if [ ! -d $$i ] ; then \
379                 echo "Making directory $$i"; \
380                 mkdir $$i; \
381                 chmod 755 $$i; \
382                 else true; \
383                 fi; \
384             done;
385         @for i in $(SRC_LIB_DIR)/*.tcl $(SRC_LIB_DIR)/*.itk; \
386             do \
387             echo "Installing $$i"; \
388             $(INSTALL_DATA) $$i $(ITK_LIBRARY); \
389             done;
390
391         @echo "Installing pkgIndex.tcl"
392         @$(INSTALL_DATA) $(srcdir)/pkgIndex.tcl $(ITK_LIBRARY)
393
394         @echo "Installing tclIndex"
395         @$(INSTALL_DATA) $(SRC_LIB_DIR)/tclIndex $(ITK_LIBRARY)
396
397 install-man:
398         @for i in $(INSTALL_MAN_DIR) $(INSTALL_MAN1_DIR) \
399                   $(INSTALL_MAN3_DIR) $(INSTALL_MANN_DIR) ; \
400             do \
401             if [ ! -d $$i ] ; then \
402                 echo "Making directory $$i"; \
403                 mkdir $$i; \
404                 chmod 755 $$i; \
405                 else true; \
406                 fi; \
407             done;
408         @cd $(SRC_MAN_DIR); for i in *.n ; \
409             do \
410             echo "Installing doc/$$i"; \
411             rm -f $(INSTALL_MANN_DIR)/$$i; \
412             sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
413                     $$i > $(INSTALL_MANN_DIR)/$$i; \
414             chmod 444 $(INSTALL_MANN_DIR)/$$i; \
415             done; \
416         for i in *.1 ; \
417             do \
418             echo "Installing doc/$$i"; \
419             rm -f $(INSTALL_MAN1_DIR)/$$i; \
420             sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
421                     $$i > $(INSTALL_MAN1_DIR)/$$i; \
422             chmod 444 $(INSTALL_MAN1_DIR)/$$i; \
423             done; 
424
425 install-info info installcheck:
426
427 install-minimal: install-libraries
428         @echo "Installing $(ITKDLL) as $(INSTALL_BIN_DIR)/$(ITKDLL)"
429         @$(INSTALL_PROGRAM) $(ITKDLL) $(INSTALL_BIN_DIR)/$(ITKDLL)