Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/config/test/link/vc_gen.sh @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 11.6 KB
Line 
1#! /bin/bash
2# copyright John Maddock 2005
3# Use, modification and distribution are subject to the
4# Boost Software License, Version 1.0. (See accompanying file
5# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7libname=""
8src=""
9header=""
10all_dep=""
11
12# current makefile:
13out=""
14# temporary file:
15tout=""
16# install target temp file:
17iout=""
18# debug flag:
19debug="no"
20# compile options:
21opts=""
22# main output sub-directory:
23subdir=""
24# extra debug /RTc options:
25debug_extra=""
26
27function vc6_gen_lib()
28{
29        all_dep="$all_dep $libname""_dir ./$subdir/$libname.lib ./$subdir/$libname.exe"
30        echo "  copy $subdir\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
31        if test $debug == "yes"; then
32                echo "  copy $subdir\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
33        fi
34#
35# set up section comments:
36        cat >> $tout << EOF
37########################################################
38#
39# section for $libname.lib
40#
41########################################################
42EOF
43#
44#       process source files:
45        all_obj=""
46        for file in $src
47        do
48                obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
49                obj="$subdir/$libname/$obj"
50                all_obj="$all_obj $obj"
51                echo "$obj: $file \$(ALL_HEADER)" >> $tout
52                echo "  cl /c \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir/$libname/ -Fd$subdir/$libname.pdb $file" >> $tout
53                echo "" >> $tout
54        done
55#
56#        now for the directories for this library:
57        echo "$libname"_dir : >> $tout
58        echo "  @if not exist \"$subdir\\$libname\\\$(NULL)\" mkdir $subdir\\$libname" >> $tout
59        echo "" >> $tout
60#
61#        now for the clean options for this library:
62        all_clean="$all_clean $libname""_clean"
63        echo "$libname"_clean : >> $tout
64        echo "  del $subdir\\$libname\\"'*.obj' >> $tout
65        echo "  del $subdir\\$libname\\"'*.idb' >> $tout
66        echo "  del $subdir\\$libname\\"'*.exp' >> $tout
67        echo "  del $subdir\\$libname\\"'*.pch' >> $tout
68        echo "" >> $tout
69#
70#        now for the main target for this library:
71        echo ./$subdir/$libname.lib : $all_obj >> $tout
72        echo "  link -lib /nologo /out:$subdir/$libname.lib \$(XSFLAGS) $all_obj" >> $tout
73        echo "" >> $tout
74#  now the test program:
75        echo ./$subdir/$libname.exe : main.cpp ./$subdir/$libname.lib >> $tout
76        echo "  cl \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -o ./$subdir/$libname.exe main.cpp /link /LIBPATH:./$subdir" >> $tout
77        echo "   $subdir"'\'"$libname.exe" >> $tout
78        echo "" >> $tout
79}
80
81function vc6_gen_dll()
82{
83        all_dep="$all_dep $libname""_dir ./$subdir/$libname.lib ./$subdir/$libname.exe"
84        echo "  copy $subdir\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
85        echo "  copy $subdir\\$libname.dll "'"$'"(MSVCDIR)\\bin"'"' >> $iout
86        if test $debug == "yes"; then
87                echo "  copy $subdir\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
88        fi
89#
90# set up section comments:
91        cat >> $tout << EOF
92########################################################
93#
94# section for $libname.lib
95#
96########################################################
97EOF
98#
99#       process source files:
100        all_obj=""
101        for file in $src
102        do
103                obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
104                obj="$subdir/$libname/$obj"
105                all_obj="$all_obj $obj"
106                echo "$obj: $file \$(ALL_HEADER)" >> $tout
107                echo "  cl /c \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir/$libname/ -Fd$subdir/$libname.pdb $file" >> $tout
108                echo "" >> $tout
109        done
110#
111#        now for the directories for this library:
112        echo "$libname"_dir : >> $tout
113        echo "  @if not exist \"$subdir\\$libname\\\$(NULL)\" mkdir $subdir\\$libname" >> $tout
114        echo "" >> $tout
115#
116#        now for the clean options for this library:
117        all_clean="$all_clean $libname""_clean"
118        echo "$libname"_clean : >> $tout
119        echo "  del $subdir\\$libname\\"'*.obj' >> $tout
120        echo "  del $subdir\\$libname\\"'*.idb' >> $tout
121        echo "  del $subdir\\$libname\\"'*.exp' >> $tout
122        echo "  del $subdir\\$libname\\"'*.pch' >> $tout
123        echo "" >> $tout
124#
125#        now for the main target for this library:
126        echo ./$subdir/$libname.lib : $all_obj >> $tout
127        echo "  link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:\"$subdir/$libname.pdb\" /debug /machine:I386 /out:\"$subdir/$libname.dll\" /implib:\"$subdir/$libname.lib\" /LIBPATH:\$(STLPORT_PATH)\\lib \$(XLFLAGS) $all_obj" >> $tout
128        echo "" >> $tout
129#  now the test program:
130        echo ./$subdir/$libname.exe : main.cpp ./$subdir/$libname.lib >> $tout
131        echo "  cl \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -o ./$subdir/$libname.exe main.cpp /link /LIBPATH:./$subdir" >> $tout
132        echo "   $subdir"'\'"$libname.exe" >> $tout
133        echo "" >> $tout
134}
135
136is_stlport="no"
137
138function vc6_gen()
139{
140        debug="no"
141        tout="temp"
142        iout="temp_install"
143        all_dep="main_dir"
144        all_clean=""
145        echo > $out
146        echo > $tout
147        rm -f $iout
148       
149        libname="liblink_test-${subdir}-s-${boost_version}"
150        opts='/nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD'
151        vc6_gen_lib
152       
153        libname="liblink_test-${subdir}-mt-s-${boost_version}"
154        opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD '
155        vc6_gen_lib
156       
157        debug="yes"
158        libname="liblink_test-${subdir}-sgd-${boost_version}"
159        opts='/nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"'  '
160        vc6_gen_lib
161       
162        libname="liblink_test-${subdir}-mt-sgd-${boost_version}"
163        opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"' '
164        vc6_gen_lib
165       
166        libname="link_test-${subdir}-mt-gd-${boost_version}"
167        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' '
168        vc6_gen_dll
169       
170        debug="no"
171        opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '
172        libname="link_test-${subdir}-mt-${boost_version}"
173        vc6_gen_dll
174       
175        debug="no"
176        opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '
177        libname="liblink_test-${subdir}-mt-${boost_version}"
178        vc6_gen_lib
179       
180        debug="yes"
181        libname="liblink_test-${subdir}-mt-gd-${boost_version}"
182        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' '
183        vc6_gen_lib
184       
185        cat > $out << EOF
186# copyright John Maddock 2005
187# Use, modification and distribution are subject to the
188# Boost Software License, Version 1.0. (See accompanying file
189# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
190#
191# auto generated makefile for VC6 compiler
192#
193# usage:
194# make
195#   brings libraries up to date
196# make install
197#   brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
198#
199
200#
201# Add additional compiler options here:
202#
203CXXFLAGS=
204#
205# Add additional include directories here:
206#
207INCLUDES=
208#
209# add additional linker flags here:
210#
211XLFLAGS=
212#
213# add additional static-library creation flags here:
214#
215XSFLAGS=
216
217!IF "\$(OS)" == "Windows_NT"
218NULL=
219!ELSE
220NULL=nul
221!ENDIF
222
223!IF "\$(MSVCDIR)" == ""
224!ERROR Variable MSVCDIR not set.
225!ENDIF
226
227EOF
228        echo "" >> $out
229        echo "ALL_HEADER=$header" >> $out
230        echo "" >> $out
231        echo "all : $all_dep" >> $out
232        echo >> $out
233        echo "clean : $all_clean" >> $out
234        echo >> $out
235        echo "install : all" >> $out
236        cat $iout >> $out
237        echo >> $out
238        echo main_dir : >> $out
239        echo "  @if not exist \"$subdir\\\$(NULL)\" mkdir $subdir" >> $out
240        echo "" >> $out
241
242        cat $tout >> $out
243}
244
245function vc6_stlp_gen()
246{
247        debug="no"
248        tout="temp"
249        iout="temp_install"
250        all_dep="main_dir"
251        all_clean=""
252        echo > $out
253        echo > $tout
254        rm -f $iout
255       
256        libname="liblink_test-${subdir}-mt-s-${boost_version}"
257        opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB '
258        vc6_gen_lib
259       
260        debug="true"
261        libname="liblink_test-${subdir}-mt-sgd-${boost_version}"
262        opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' '
263        vc6_gen_lib
264       
265        libname="link_test-${subdir}-mt-gd-${boost_version}"
266        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
267        vc6_gen_dll
268       
269        debug="no"
270        opts='/nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '
271        libname="link_test-${subdir}-mt-${boost_version}"
272        vc6_gen_dll
273       
274        debug="no"
275        opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '
276        libname="liblink_test-${subdir}-mt-${boost_version}"
277        vc6_gen_lib
278       
279        debug="true"
280        libname="liblink_test-${subdir}-mt-gd-${boost_version}"
281        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
282        vc6_gen_lib
283
284#  debug STLPort mode:
285#  not yet supported by bjam?
286        debug="yes"
287        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
288        libname="link_test-${subdir}-mt-pgd-${boost_version}"
289        vc6_gen_dll
290        libname="liblink_test-${subdir}-mt-spgd-${boost_version}"
291        opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' '
292        vc6_gen_lib
293        opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
294        libname="liblink_test-${subdir}-mt-pgd-${boost_version}"
295        vc6_gen_lib
296       
297        cat > $out << EOF
298# copyright John Maddock 2005
299# Use, modification and distribution are subject to the
300# Boost Software License, Version 1.0. (See accompanying file
301# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
302#
303# auto generated makefile for VC6+STLPort
304#
305# usage:
306# make
307#   brings libraries up to date
308# make install
309#   brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
310#
311
312#
313# Add additional compiler options here:
314#
315CXXFLAGS=
316#
317# Add additional include directories here:
318#
319INCLUDES=
320#
321# add additional linker flags here:
322#
323XLFLAGS=
324#
325# add additional static-library creation flags here:
326#
327XSFLAGS=
328
329!IF "\$(OS)" == "Windows_NT"
330NULL=
331!ELSE
332NULL=nul
333!ENDIF
334
335!IF "\$(MSVCDIR)" == ""
336!ERROR Variable MSVCDIR not set.
337!ENDIF
338
339!IF "\$(STLPORT_PATH)" == ""
340!ERROR Variable STLPORT_PATH not set.
341!ENDIF
342
343EOF
344        echo "" >> $out
345        echo "ALL_HEADER=$header" >> $out
346        echo "" >> $out
347        echo "all : $all_dep" >> $out
348        echo >> $out
349        echo "clean : $all_clean" >> $out
350        echo >> $out
351        echo "install : stlport_check all" >> $out
352        cat $iout >> $out
353        echo >> $out
354        echo main_dir : >> $out
355        echo "  @if not exist \"$subdir\\\$(NULL)\" mkdir $subdir" >> $out
356        echo "" >> $out
357        echo 'stlport_check : $(STLPORT_PATH)\stlport\string' >> $out
358        echo "  echo" >> $out
359        echo "" >> $out
360
361        cat $tout >> $out
362}
363
364
365. common.sh
366
367#
368# generate vc6 makefile:
369debug_extra="/GX"
370out="vc6.mak"
371subdir="vc6"
372vc6_gen
373#
374# generate vc6-stlport makefile:
375is_stlport="yes"
376out="vc6-stlport.mak"
377no_single="yes"
378subdir="vc6-stlport"
379vc6_stlp_gen
380#
381# generate vc7 makefile:
382debug_extra="/GX /RTC1"
383is_stlport="no"
384out="vc7.mak"
385no_single="no"
386subdir="vc7"
387vc6_gen
388#
389# generate vc7-stlport makefile:
390is_stlport="yes"
391out="vc7-stlport.mak"
392no_single="yes"
393subdir="vc7-stlport"
394vc6_stlp_gen
395#
396# generate vc71 makefile:
397is_stlport="no"
398out="vc71.mak"
399no_single="no"
400subdir="vc71"
401vc6_gen
402#
403# generate vc71-stlport makefile:
404is_stlport="yes"
405out="vc71-stlport.mak"
406no_single="yes"
407subdir="vc71-stlport"
408vc6_stlp_gen
409
410
411#
412# remove tmep files;
413rm -f $tout $iout
414
415
416
417
418
419
420
421
422
423
424
Note: See TracBrowser for help on using the repository browser.