]> git.pld-linux.org Git - packages/bakefile.git/blame - bakefile-0.1.4.m4
- add BR python-devel
[packages/bakefile.git] / bakefile-0.1.4.m4
CommitLineData
4a5ff73a
KK
1dnl ---------------------------------------------------------------------------
2dnl Support macros for makefiles generated by BAKEFILE.
3dnl ---------------------------------------------------------------------------
4
5dnl Lots of compiler & linker detection code contained here was taken from
6dnl wxWindows configure.in script (see http://www.wxwindows.org)
7
8
9
10dnl ---------------------------------------------------------------------------
11dnl AC_BAKEFILE_GNUMAKE
12dnl
13dnl Detects GNU make
14dnl ---------------------------------------------------------------------------
15
16AC_DEFUN([AC_BAKEFILE_GNUMAKE],
17[
18 dnl does make support "-include" (only GNU make does AFAIK)?
19 AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu,
20 [
21 if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
22 egrep -s GNU > /dev/null); then
23 bakefile_cv_prog_makeisgnu="yes"
24 else
25 bakefile_cv_prog_makeisgnu="no"
26 fi
27 ])
28
29 if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then
30 IF_GNU_MAKE=""
31 else
32 IF_GNU_MAKE="#"
33 fi
34 AC_SUBST(IF_GNU_MAKE)
35])
36
37dnl ---------------------------------------------------------------------------
38dnl AC_BAKEFILE_PLATFORM
39dnl
40dnl Detects platform and sets PLATFORM_XXX variables accordingly
41dnl ---------------------------------------------------------------------------
42
43AC_DEFUN([AC_BAKEFILE_PLATFORM],
44[
45 PLATFORM_UNIX=0
46 PLATFORM_WIN32=0
47 PLATFORM_MSDOS=0
48 PLATFORM_MAC=0
49 PLATFORM_MACOS=0
50 PLATFORM_MACOSX=0
51 PLATFORM_OS2=0
52 PLATFORM_BEOS=0
53
54 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then
55 case "${BAKEFILE_HOST}" in
56 *-*-cygwin* | *-*-mingw32* )
57 PLATFORM_WIN32=1
58 ;;
59 *-pc-msdosdjgpp )
60 PLATFORM_MSDOS=1
61 ;;
62 *-pc-os2_emx | *-pc-os2-emx )
63 PLATFORM_OS2=1
64 ;;
65 powerpc-*-darwin* )
66 PLATFORM_MAC=1
67 PLATFORM_MACOSX=1
68 ;;
69 *-*-beos* )
70 PLATFORM_BEOS=1
71 ;;
72 powerpc-apple-macos* )
73 PLATFORM_MAC=1
74 PLATFORM_MACOS=1
75 ;;
76 * )
77 PLATFORM_UNIX=1
78 ;;
79 esac
80 else
81 case "$BAKEFILE_FORCE_PLATFORM" in
82 win32 )
83 PLATFORM_WIN32=1
84 ;;
85 msdos )
86 PLATFORM_MSDOS=1
87 ;;
88 os2 )
89 PLATFORM_OS2=1
90 ;;
91 darwin )
92 PLATFORM_MAC=1
93 PLATFORM_MACOSX=1
94 ;;
95 unix )
96 PLATFORM_UNIX=1
97 ;;
98 beos )
99 PLATFORM_BEOS=1
100 ;;
101 * )
102 AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM])
103 ;;
104 esac
105 fi
106
107 AC_SUBST(PLATFORM_UNIX)
108 AC_SUBST(PLATFORM_WIN32)
109 AC_SUBST(PLATFORM_MSDOS)
110 AC_SUBST(PLATFORM_MAC)
111 AC_SUBST(PLATFORM_MACOS)
112 AC_SUBST(PLATFORM_MACOSX)
113 AC_SUBST(PLATFORM_OS2)
114 AC_SUBST(PLATFORM_BEOS)
115])
116
117
118dnl ---------------------------------------------------------------------------
119dnl AC_BAKEFILE_PLATFORM_SPECIFICS
120dnl
121dnl Sets misc platform-specific settings
122dnl ---------------------------------------------------------------------------
123
124AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS],
125[
126 AC_ARG_ENABLE([omf], AS_HELP_STRING([--enable-omf],
127 [use OMF object format (OS/2)]),
128 [bk_os2_use_omf="$enableval"])
129
130 case "${BAKEFILE_HOST}" in
131 *-*-darwin* )
132 dnl For Unix to MacOS X porting instructions, see:
133 dnl http://fink.sourceforge.net/doc/porting/porting.html
134 CFLAGS="$CFLAGS -fno-common"
135 CXXFLAGS="$CXXFLAGS -fno-common"
136 ;;
137
138 *-pc-os2_emx | *-pc-os2-emx )
139 if test "x$bk_os2_use_omf" = "xyes" ; then
140 AR=emxomfar
141 RANLIB=:
142 LDFLAGS="-Zomf $LDFLAGS"
143 CFLAGS="-Zomf $CFLAGS"
144 CXXFLAGS="-Zomf $CXXFLAGS"
145 OS2_LIBEXT="lib"
146 else
147 OS2_LIBEXT="a"
148 fi
149 ;;
150
151 i*86-*-beos* )
152 LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS"
153 ;;
154 esac
155])
156
157dnl ---------------------------------------------------------------------------
158dnl AC_BAKEFILE_SUFFIXES
159dnl
160dnl Detects shared various suffixes for shared libraries, libraries, programs,
161dnl plugins etc.
162dnl ---------------------------------------------------------------------------
163
164AC_DEFUN([AC_BAKEFILE_SUFFIXES],
165[
166 SO_SUFFIX="so"
167 SO_SUFFIX_MODULE="so"
168 EXEEXT=""
169 LIBPREFIX="lib"
170 LIBEXT=".a"
171 DLLPREFIX="lib"
172 DLLPREFIX_MODULE=""
173 DLLIMP_SUFFIX=""
174
175 case "${BAKEFILE_HOST}" in
176 *-hp-hpux* )
177 SO_SUFFIX="sl"
178 SO_SUFFIX_MODULE="sl"
179 ;;
180 *-*-aix* )
181 dnl quoting from
182 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
183 dnl Both archive libraries and shared libraries on AIX have an
184 dnl .a extension. This will explain why you can't link with an
185 dnl .so and why it works with the name changed to .a.
186 SO_SUFFIX="a"
187 SO_SUFFIX_MODULE="a"
188 ;;
189 *-*-cygwin* | *-*-mingw32* )
190 SO_SUFFIX="dll"
191 SO_SUFFIX_MODULE="dll"
192 DLLIMP_SUFFIX="dll.a"
193 EXEEXT=".exe"
194 DLLPREFIX=""
195 ;;
196 *-pc-msdosdjgpp )
197 EXEEXT=".exe"
198 DLLPREFIX=""
199 ;;
200 *-pc-os2_emx | *-pc-os2-emx )
201 SO_SUFFIX="dll"
202 SO_SUFFIX_MODULE="dll"
203 DLLIMP_SUFFIX=$OS2_LIBEXT
204 EXEEXT=".exe"
205 DLLPREFIX=""
206 LIBPREFIX=""
207 LIBEXT=".$OS2_LIBEXT"
208 ;;
209 powerpc-*-darwin* )
210 SO_SUFFIX="dylib"
211 SO_SUFFIX_MODULE="bundle"
212 ;;
213 esac
214
215 if test "x$DLLIMP_SUFFIX" = "x" ; then
216 DLLIMP_SUFFIX="$SO_SUFFIX"
217 fi
218
219 AC_SUBST(SO_SUFFIX)
220 AC_SUBST(SO_SUFFIX_MODULE)
221 AC_SUBST(DLLIMP_SUFFIX)
222 AC_SUBST(EXEEXT)
223 AC_SUBST(LIBPREFIX)
224 AC_SUBST(LIBEXT)
225 AC_SUBST(DLLPREFIX)
226 AC_SUBST(DLLPREFIX_MODULE)
227])
228
229
230dnl ---------------------------------------------------------------------------
231dnl AC_BAKEFILE_SHARED_LD
232dnl
233dnl Detects command for making shared libraries, substitutes SHARED_LD_CC
234dnl and SHARED_LD_CXX.
235dnl ---------------------------------------------------------------------------
236
237AC_DEFUN([AC_BAKEFILE_SHARED_LD],
238[
239 dnl the extra compiler flags needed for compilation of shared library
240 PIC_FLAG=""
241 if test "x$GCC" = "xyes"; then
242 dnl the switch for gcc is the same under all platforms
243 PIC_FLAG="-fPIC"
244 fi
245
246 dnl Defaults for GCC and ELF .so shared libs:
247 SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o"
248 SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o"
249
250 case "${BAKEFILE_HOST}" in
251 *-hp-hpux* )
252 dnl default settings are good for gcc but not for the native HP-UX
253 if test "x$GCC" != "xyes"; then
254 dnl no idea why it wants it, but it does
255 LDFLAGS="$LDFLAGS -L/usr/lib"
256
257 SHARED_LD_CC="${CC} -b -o"
258 SHARED_LD_CXX="${CXX} -b -o"
259 PIC_FLAG="+Z"
260 fi
261 ;;
262
263 *-*-linux* )
264 if test "x$GCC" != "xyes"; then
265 AC_CACHE_CHECK([for Intel compiler], bakefile_cv_prog_icc,
266 [
267 AC_TRY_COMPILE([],
268 [
269 #ifndef __INTEL_COMPILER
270 #error Not icc
271 #endif
272 ],
273 bakefile_cv_prog_icc=yes,
274 bakefile_cv_prog_icc=no
275 )
276 ])
277 if test "$bakefile_cv_prog_icc" = "yes"; then
278 PIC_FLAG="-KPIC"
279 fi
280 fi
281 ;;
282
283 *-*-solaris2* )
284 if test "x$GCC" != xyes ; then
285 SHARED_LD_CC="${CC} -G -o"
286 SHARED_LD_CXX="${CXX} -G -o"
287 PIC_FLAG="-KPIC"
288 fi
289 ;;
290
291 *-*-darwin* )
292 dnl Most apps benefit from being fully binded (its faster and static
293 dnl variables initialized at startup work).
294 dnl This can be done either with the exe linker flag -Wl,-bind_at_load
295 dnl or with a double stage link in order to create a single module
296 dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
297
298 dnl If using newer dev tools then there is a -single_module flag that
299 dnl we can use to do this, otherwise we'll need to use a helper
300 dnl script. Check the version of gcc to see which way we can go:
301 AC_CACHE_CHECK([for gcc 3.1 or later], wx_cv_gcc31, [
302 AC_TRY_COMPILE([],
303 [
304 #if (__GNUC__ < 3) || \
305 ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1))
306 #error old gcc
307 #endif
308 ],
309 [
310 wx_cv_gcc31=yes
311 ],
312 [
313 wx_cv_gcc31=no
314 ]
315 )
316 ])
317 if test "$wx_cv_gcc31" = "no"; then
318 AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH
319 chmod +x shared-ld-sh
320
321 dnl Use the shared-ld-sh helper script
322 SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o"
323 SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o"
324 SHARED_LD_CXX="$SHARED_LD_CC"
325 SHARED_LD_MODULE_CXX="$SHARED_LD_MODULE_CC"
326 else
327 dnl Use the -single_module flag and let the linker do it for us
328 SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o"
329 SHARED_LD_MODULE_CC="\${CC} -bundle -single_module -headerpad_max_install_names -o"
330 SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o"
331 SHARED_LD_MODULE_CXX="\${CXX} -bundle -single_module -headerpad_max_install_names -o"
332 fi
333
334 PIC_FLAG="-dynamic -fPIC"
335 ;;
336
337 *-*-aix* )
338 dnl default settings are ok for gcc
339 if test "x$GCC" != "xyes"; then
340 dnl the abs path below used to be hardcoded here so I guess it must
341 dnl be some sort of standard location under AIX?
342 AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
343 makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
344 dnl FIXME - what about makeCSharedLib?
345 SHARED_LD_CC="$AIX_CC_LD -p 0 -o"
346 SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o"
347 fi
348 ;;
349
350 *-*-beos* )
351 dnl can't use gcc under BeOS for shared library creation because it
352 dnl complains about missing 'main'
353 SHARED_LD_CC="${LD} -nostart -o"
354 SHARED_LD_CXX="${LD} -nostart -o"
355 ;;
356
357 *-*-irix* )
358 dnl default settings are ok for gcc
359 if test "x$GCC" != "xyes"; then
360 PIC_FLAG="-KPIC"
361 fi
362 ;;
363
364 *-*-cygwin* | *-*-mingw32* )
365 PIC_FLAG=""
366 SHARED_LD_CC="\$(CC) -shared -o"
367 SHARED_LD_CXX="\$(CXX) -shared -o"
368 ;;
369
370 *-pc-os2_emx | *-pc-os2-emx )
371 SHARED_LD_CC="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
372 SHARED_LD_CXX="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
373 PIC_FLAG=""
374 AC_BAKEFILE_CREATE_FILE_DLLAR_SH
375 chmod +x dllar.sh
376 ;;
377
378 powerpc-apple-macos* | \
379 *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
380 *-*-sunos4* | \
381 *-*-osf* | \
382 *-*-dgux5* | \
383 *-*-sysv5* )
384 dnl defaults are ok
385 ;;
386
387 *)
388 AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.)
389 esac
390
391 if test "x$PIC_FLAG" != "x" ; then
392 PIC_FLAG="$PIC_FLAG -DPIC"
393 fi
394
395 if test "x$SHARED_LD_MODULE_CC" = "x" ; then
396 SHARED_LD_MODULE_CC="$SHARED_LD_CC"
397 fi
398 if test "x$SHARED_LD_MODULE_CXX" = "x" ; then
399 SHARED_LD_MODULE_CXX="$SHARED_LD_CXX"
400 fi
401
402 AC_SUBST(SHARED_LD_CC)
403 AC_SUBST(SHARED_LD_CXX)
404 AC_SUBST(SHARED_LD_MODULE_CC)
405 AC_SUBST(SHARED_LD_MODULE_CXX)
406 AC_SUBST(PIC_FLAG)
407])
408
409
410dnl ---------------------------------------------------------------------------
411dnl AC_BAKEFILE_SHARED_VERSIONS
412dnl
413dnl Detects linker options for attaching versions (sonames) to shared libs.
414dnl ---------------------------------------------------------------------------
415
416AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
417[
418 USE_SOVERSION=0
419 USE_SOVERLINUX=0
420 USE_SOVERSOLARIS=0
421 USE_SOSYMLINKS=0
422 USE_MACVERSION=0
423 SONAME_FLAG=
424
425 case "${BAKEFILE_HOST}" in
da7057e4 426 *-*-linux* | *-*-freebsd* )
4a5ff73a
KK
427 SONAME_FLAG="-Wl,-soname,"
428 USE_SOVERSION=1
429 USE_SOVERLINUX=1
430 USE_SOSYMLINKS=1
431 ;;
432
433 *-*-solaris2* )
434 SONAME_FLAG="-h "
435 USE_SOVERSION=1
436 USE_SOVERSOLARIS=1
437 USE_SOSYMLINKS=1
438 ;;
439
440 *-*-darwin* )
441 USE_MACVERSION=1
442 USE_SOVERSION=1
443 USE_SOSYMLINKS=1
444 ;;
445 esac
446
447 AC_SUBST(USE_SOVERSION)
448 AC_SUBST(USE_SOVERLINUX)
449 AC_SUBST(USE_SOVERSOLARIS)
450 AC_SUBST(USE_MACVERSION)
451 AC_SUBST(USE_SOSYMLINKS)
452 AC_SUBST(SONAME_FLAG)
453])
454
455
456dnl ---------------------------------------------------------------------------
457dnl AC_BAKEFILE_DEPS
458dnl
459dnl Detects available C/C++ dependency tracking options
460dnl ---------------------------------------------------------------------------
461
462AC_DEFUN([AC_BAKEFILE_DEPS],
463[
464 AC_MSG_CHECKING([for dependency tracking method])
465 DEPS_TRACKING=0
466
467 if test "x$GCC" = "xyes"; then
468 DEPSMODE=gcc
469 DEPS_TRACKING=1
470 case "${BAKEFILE_HOST}" in
471 powerpc-*-darwin* )
472 dnl -cpp-precomp (the default) conflicts with -MMD option
473 dnl used by bk-deps (see also http://developer.apple.com/documentation/Darwin/Conceptual/PortingUnix/compiling/chapter_4_section_3.html)
474 DEPSFLAG_GCC="-no-cpp-precomp -MMD"
475 ;;
476 * )
477 DEPSFLAG_GCC="-MMD"
478 ;;
479 esac
480 AC_MSG_RESULT([gcc])
481 else
482 AC_MSG_RESULT([none])
483 fi
484
485 if test $DEPS_TRACKING = 1 ; then
486 AC_BAKEFILE_CREATE_FILE_BK_DEPS
487 chmod +x bk-deps
488 fi
489
490 AC_SUBST(DEPS_TRACKING)
491])
492
493dnl ---------------------------------------------------------------------------
494dnl AC_BAKEFILE_CHECK_BASIC_STUFF
495dnl
496dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib"
497dnl or "install"
498dnl ---------------------------------------------------------------------------
499
500AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF],
501[
502 AC_PROG_RANLIB
503 AC_PROG_INSTALL
504 AC_PROG_LN_S
505
506 AC_PROG_MAKE_SET
507 AC_SUBST(MAKE_SET)
508
509 AC_CHECK_TOOL(AR, ar, ar)
510 AC_CHECK_TOOL(STRIP, strip, :)
511 AC_CHECK_TOOL(NM, nm, :)
512
513 case ${BAKEFILE_HOST} in
514 *-hp-hpux* )
515 dnl HP-UX install doesn't handle the "-d" switch so don't
516 dnl use it there
517 INSTALL_DIR="mkdir -p"
518 ;;
519 *) INSTALL_DIR="$INSTALL -d"
520 ;;
521 esac
522 AC_SUBST(INSTALL_DIR)
523
524 LDFLAGS_GUI=
525 case ${BAKEFILE_HOST} in
526 *-*-cygwin* | *-*-mingw32* )
527 LDFLAGS_GUI="-mwindows"
528 esac
529 AC_SUBST(LDFLAGS_GUI)
530])
531
532
533dnl ---------------------------------------------------------------------------
534dnl AC_BAKEFILE_RES_COMPILERS
535dnl
536dnl Checks for presence of resource compilers for win32 or mac
537dnl ---------------------------------------------------------------------------
538
539AC_DEFUN([AC_BAKEFILE_RES_COMPILERS],
540[
541 RESCOMP=
542 SETFILE=
543
544 case ${BAKEFILE_HOST} in
545 *-*-cygwin* | *-*-mingw32* )
546 dnl Check for win32 resources compiler:
547 if test "$build" != "$host" ; then
548 RESCOMP=$host_alias-windres
549 else
550 AC_CHECK_PROG(RESCOMP, windres, windres, windres)
551 fi
552 ;;
553
554 *-*-darwin* | powerpc-apple-macos* )
555 AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
556 AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
557 ;;
558 esac
559
560 AC_SUBST(RESCOMP)
561 AC_SUBST(SETFILE)
562])
563
564dnl ---------------------------------------------------------------------------
565dnl AC_BAKEFILE_PRECOMP_HEADERS
566dnl
567dnl Check for precompiled headers support (GCC >= 3.4)
568dnl ---------------------------------------------------------------------------
569
570AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
571[
572
573 AC_ARG_ENABLE([precomp-headers],
574 AS_HELP_STRING([--disable-precomp-headers],
575 [don't use precompiled headers even if compiler can]),
576 [bk_use_pch="$enableval"])
577
578 GCC_PCH=0
579
580 if test "x$bk_use_pch" = "x" -o "x$bk_use_pch" = "xyes" ; then
581 if test "x$GCC" = "xyes"; then
582 dnl test if we have gcc-3.4:
583 AC_MSG_CHECKING([if the compiler supports precompiled headers])
584 AC_TRY_COMPILE([],
585 [
586 #if !defined(__GNUC__) || !defined(__GNUC_MINOR__)
587 #error "no pch support"
588 #endif
589 #if (__GNUC__ < 3)
590 #error "no pch support"
591 #endif
592 #if (__GNUC__ == 3) && \
593 ((!defined(__APPLE_CC__) && (__GNUC_MINOR__ < 4)) || \
594 ( defined(__APPLE_CC__) && (__GNUC_MINOR__ < 3)))
595 #error "no pch support"
596 #endif
597 ],
598 [
599 AC_MSG_RESULT([yes])
600 GCC_PCH=1
601 ],
602 [
603 AC_MSG_RESULT([no])
604 ])
605 if test $GCC_PCH = 1 ; then
606 AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH
607 chmod +x bk-make-pch
608 fi
609 fi
610 fi
611
612 AC_SUBST(GCC_PCH)
613])
614
615
616
617dnl ---------------------------------------------------------------------------
618dnl AC_BAKEFILE
619dnl
620dnl To be used in configure.in of any project using Bakefile-generated mks
621dnl
622dnl Behaviour can be modified by setting following variables:
623dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to
624dnl to perform check for basic tools like ranlib
625dnl BAKEFILE_HOST set this to override host detection, defaults
626dnl to ${host}
627dnl BAKEFILE_FORCE_PLATFORM set to override platform detection
628dnl ---------------------------------------------------------------------------
629
630AC_DEFUN([AC_BAKEFILE],
631[
632 AC_PREREQ(2.58)
633
634 if test "x$BAKEFILE_HOST" = "x"; then
635 BAKEFILE_HOST="${host}"
636 fi
637
638 if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then
639 AC_BAKEFILE_CHECK_BASIC_STUFF
640 fi
641 AC_BAKEFILE_GNUMAKE
642 AC_BAKEFILE_PLATFORM
643 AC_BAKEFILE_PLATFORM_SPECIFICS
644 AC_BAKEFILE_SUFFIXES
645 AC_BAKEFILE_SHARED_LD
646 AC_BAKEFILE_SHARED_VERSIONS
647 AC_BAKEFILE_DEPS
648 AC_BAKEFILE_RES_COMPILERS
649
650 BAKEFILE_BAKEFILE_M4_VERSION="0.1.4"
651
652 builtin(include, autoconf_inc.m4)
653
654 if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then
655 AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.])
656 fi
657])
658
659
660dnl ---------------------------------------------------------------------------
661dnl Embedded copies of helper scripts follow:
662dnl ---------------------------------------------------------------------------
663
664AC_DEFUN([AC_BAKEFILE_CREATE_FILE_DLLAR_SH],
665[
666dnl ===================== dllar.sh begins here =====================
667D='$'
668cat <<EOF >dllar.sh
669#!/bin/sh
670#
671# dllar - a tool to build both a .dll and an .a file
672# from a set of object (.o) files for EMX/OS2.
673#
674# Written by Andrew Zabolotny, bit@freya.etu.ru
675# Ported to Unix like shell by Stefan Neis, Stefan.Neis@t-online.de
676#
677# This script will accept a set of files on the command line.
678# All the public symbols from the .o files will be exported into
679# a .DEF file, then linker will be run (through gcc) against them to
680# build a shared library consisting of all given .o files. All libraries
681# (.a) will be first decompressed into component .o files then act as
682# described above. You can optionally give a description (-d "description")
683# which will be put into .DLL. To see the list of accepted options (as well
684# as command-line format) simply run this program without options. The .DLL
685# is built to be imported by name (there is no guarantee that new versions
686# of the library you build will have same ordinals for same symbols).
687#
688# dllar is free software; you can redistribute it and/or modify
689# it under the terms of the GNU General Public License as published by
690# the Free Software Foundation; either version 2, or (at your option)
691# any later version.
692#
693# dllar is distributed in the hope that it will be useful,
694# but WITHOUT ANY WARRANTY; without even the implied warranty of
695# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
696# GNU General Public License for more details.
697#
698# You should have received a copy of the GNU General Public License
699# along with dllar; see the file COPYING. If not, write to the Free
700# Software Foundation, 59 Temple Place - Suite 330, Boston, MA
701# 02111-1307, USA.
702
703# To successfuly run this program you will need:
704# - Current drive should have LFN support (HPFS, ext2, network, etc)
705# (Sometimes dllar generates filenames which won't fit 8.3 scheme)
706# - gcc
707# (used to build the .dll)
708# - emxexp
709# (used to create .def file from .o files)
710# - emximp
711# (used to create .a file from .def file)
712# - GNU text utilites (cat, sort, uniq)
713# used to process emxexp output
714# - GNU file utilities (mv, rm)
715# - GNU sed
716# - lxlite (optional, see flag below)
717# (used for general .dll cleanup)
718#
719
720flag_USE_LXLITE=1;
721
722#
723# helper functions
724# basnam, variant of basename, which does _not_ remove the path, _iff_
725# second argument (suffix to remove) is given
726basnam(){
727 case ${D}# in
728 1)
729 echo ${D}1 | sed 's/.*\\///' | sed 's/.*\\\\//'
730 ;;
731 2)
732 echo ${D}1 | sed 's/'${D}2'${D}//'
733 ;;
734 *)
735 echo "error in basnam ${D}*"
736 exit 8
737 ;;
738 esac
739}
740
741# Cleanup temporary files and output
742CleanUp() {
743 cd ${D}curDir
744 for i in ${D}inputFiles ; do
745 case ${D}i in
746 *!)
747 rm -rf \`basnam ${D}i !\`
748 ;;
749 *)
750 ;;
751 esac
752 done
753
754 # Kill result in case of failure as there is just to many stupid make/nmake
755 # things out there which doesn't do this.
756 if @<:@ ${D}# -eq 0 @:>@; then
757 rm -f ${D}arcFile ${D}arcFile2 ${D}defFile ${D}dllFile
758 fi
759}
760
761# Print usage and exit script with rc=1.
762PrintHelp() {
763 echo 'Usage: dllar.sh @<:@-o@<:@utput@:>@ output_file@:>@ @<:@-i@<:@mport@:>@ importlib_name@:>@'
764 echo ' @<:@-name-mangler-script script.sh@:>@'
765 echo ' @<:@-d@<:@escription@:>@ "dll descrption"@:>@ @<:@-cc "CC"@:>@ @<:@-f@<:@lags@:>@ "CFLAGS"@:>@'
766 echo ' @<:@-ord@<:@inals@:>@@:>@ -ex@<:@clude@:>@ "symbol(s)"'
767 echo ' @<:@-libf@<:@lags@:>@ "{INIT|TERM}{GLOBAL|INSTANCE}"@:>@ @<:@-nocrt@<:@dll@:>@@:>@ @<:@-nolxl@<:@ite@:>@@:>@'
768 echo ' @<:@*.o@:>@ @<:@*.a@:>@'
769 echo '*> "output_file" should have no extension.'
770 echo ' If it has the .o, .a or .dll extension, it is automatically removed.'
771 echo ' The import library name is derived from this and is set to "name".a,'
772 echo ' unless overridden by -import'
773 echo '*> "importlib_name" should have no extension.'
774 echo ' If it has the .o, or .a extension, it is automatically removed.'
775 echo ' This name is used as the import library name and may be longer and'
776 echo ' more descriptive than the DLL name which has to follow the old '
777 echo ' 8.3 convention of FAT.'
778 echo '*> "script.sh may be given to override the output_file name by a'
779 echo ' different name. It is mainly useful if the regular make process'
780 echo ' of some package does not take into account OS/2 restriction of'
781 echo ' DLL name lengths. It takes the importlib name as input and is'
782 echo ' supposed to procude a shorter name as output. The script should'
783 echo ' expect to get importlib_name without extension and should produce'
784 echo ' a (max.) 8 letter name without extension.'
785 echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)'
786 echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)'
787 echo ' These flags will be put at the start of GCC command line.'
788 echo '*> -ord@<:@inals@:>@ tells dllar to export entries by ordinals. Be careful.'
789 echo '*> -ex@<:@clude@:>@ defines symbols which will not be exported. You can define'
790 echo ' multiple symbols, for example -ex "myfunc yourfunc _GLOBAL*".'
791 echo ' If the last character of a symbol is "*", all symbols beginning'
792 echo ' with the prefix before "*" will be exclude, (see _GLOBAL* above).'
793 echo '*> -libf@<:@lags@:>@ can be used to add INITGLOBAL/INITINSTANCE and/or'
794 echo ' TERMGLOBAL/TERMINSTANCE flags to the dynamically-linked library.'
795 echo '*> -nocrt@<:@dll@:>@ switch will disable linking the library against emx''s'
796 echo ' C runtime DLLs.'
797 echo '*> -nolxl@<:@ite@:>@ switch will disable running lxlite on the resulting DLL.'
798 echo '*> All other switches (for example -L./ or -lmylib) will be passed'
799 echo ' unchanged to GCC at the end of command line.'
800 echo '*> If you create a DLL from a library and you do not specify -o,'
801 echo ' the basename for DLL and import library will be set to library name,'
802 echo ' the initial library will be renamed to 'name'_s.a (_s for static)'
803 echo ' i.e. "dllar gcc.a" will create gcc.dll and gcc.a, and the initial'
804 echo ' library will be renamed into gcc_s.a.'
805 echo '--------'
806 echo 'Example:'
807 echo ' dllar -o gcc290.dll libgcc.a -d "GNU C runtime library" -ord'
808 echo ' -ex "__main __ctordtor*" -libf "INITINSTANCE TERMINSTANCE"'
809 CleanUp
810 exit 1
811}
812
813# Execute a command.
814# If exit code of the commnad <> 0 CleanUp() is called and we'll exit the script.
815# @Uses Whatever CleanUp() uses.
816doCommand() {
817 echo "${D}*"
818 eval ${D}*
819 rcCmd=${D}?
820
821 if @<:@ ${D}rcCmd -ne 0 @:>@; then
822 echo "command failed, exit code="${D}rcCmd
823 CleanUp
824 exit ${D}rcCmd
825 fi
826}
827
828# main routine
829# setup globals
830cmdLine=${D}*
831outFile=""
832outimpFile=""
833inputFiles=""
834renameScript=""
835description=""
836CC=gcc.exe
837CFLAGS="-s -Zcrtdll"
838EXTRA_CFLAGS=""
839EXPORT_BY_ORDINALS=0
840exclude_symbols=""
841library_flags=""
842curDir=\`pwd\`
843curDirS=curDir
844case ${D}curDirS in
845*/)
846 ;;
847*)
848 curDirS=${D}{curDirS}"/"
849 ;;
850esac
851# Parse commandline
852libsToLink=0
853omfLinking=0
854while @<:@ ${D}1 @:>@; do
855 case ${D}1 in
856 -ord*)
857 EXPORT_BY_ORDINALS=1;
858 ;;
859 -o*)
860 shift
861 outFile=${D}1
862 ;;
863 -i*)
864 shift
865 outimpFile=${D}1
866 ;;
867 -name-mangler-script)
868 shift
869 renameScript=${D}1
870 ;;
871 -d*)
872 shift
873 description=${D}1
874 ;;
875 -f*)
876 shift
877 CFLAGS=${D}1
878 ;;
879 -c*)
880 shift
881 CC=${D}1
882 ;;
883 -h*)
884 PrintHelp
885 ;;
886 -ex*)
887 shift
888 exclude_symbols=${D}{exclude_symbols}${D}1" "
889 ;;
890 -libf*)
891 shift
892 library_flags=${D}{library_flags}${D}1" "
893 ;;
894 -nocrt*)
895 CFLAGS="-s"
896 ;;
897 -nolxl*)
898 flag_USE_LXLITE=0
899 ;;
900 -* | /*)
901 case ${D}1 in
902 -L* | -l*)
903 libsToLink=1
904 ;;
905 -Zomf)
906 omfLinking=1
907 ;;
908 *)
909 ;;
910 esac
911 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
912 ;;
913 *.dll)
914 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS} \`basnam ${D}1 .dll\`"
915 if @<:@ ${D}omfLinking -eq 1 @:>@; then
916 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.lib"
917 else
918 EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.a"
919 fi
920 ;;
921 *)
922 found=0;
923 if @<:@ ${D}libsToLink -ne 0 @:>@; then
924 EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1
925 else
926 for file in ${D}1 ; do
927 if @<:@ -f ${D}file @:>@; then
928 inputFiles="${D}{inputFiles} ${D}file"
929 found=1
930 fi
931 done
932 if @<:@ ${D}found -eq 0 @:>@; then
933 echo "ERROR: No file(s) found: "${D}1
934 exit 8
935 fi
936 fi
937 ;;
938 esac
939 shift
940done # iterate cmdline words
941
942#
943if @<:@ -z "${D}inputFiles" @:>@; then
944 echo "dllar: no input files"
945 PrintHelp
946fi
947
948# Now extract all .o files from .a files
949newInputFiles=""
950for file in ${D}inputFiles ; do
951 case ${D}file in
952 *.a | *.lib)
953 case ${D}file in
954 *.a)
955 suffix=".a"
956 AR="ar"
957 ;;
958 *.lib)
959 suffix=".lib"
960 AR="emxomfar"
961 EXTRA_CFLAGS="${D}EXTRA_CFLAGS -Zomf"
962 ;;
963 *)
964 ;;
965 esac
966 dirname=\`basnam ${D}file ${D}suffix\`"_%"
967 mkdir ${D}dirname
968 if @<:@ ${D}? -ne 0 @:>@; then
969 echo "Failed to create subdirectory ./${D}dirname"
970 CleanUp
971 exit 8;
972 fi
973 # Append '!' to indicate archive
974 newInputFiles="${D}newInputFiles ${D}{dirname}!"
975 doCommand "cd ${D}dirname; ${D}AR x ../${D}file"
976 cd ${D}curDir
977 found=0;
978 for subfile in ${D}dirname/*.o* ; do
979 if @<:@ -f ${D}subfile @:>@; then
980 found=1
981 if @<:@ -s ${D}subfile @:>@; then
982 # FIXME: This should be: is file size > 32 byte, _not_ > 0!
983 newInputFiles="${D}newInputFiles ${D}subfile"
984 fi
985 fi
986 done
987 if @<:@ ${D}found -eq 0 @:>@; then
988 echo "WARNING: there are no files in archive \\'${D}file\\'"
989 fi
990 ;;
991 *)
992 newInputFiles="${D}{newInputFiles} ${D}file"
993 ;;
994 esac
995done
996inputFiles="${D}newInputFiles"
997
998# Output filename(s).
999do_backup=0;
1000if @<:@ -z ${D}outFile @:>@; then
1001 do_backup=1;
1002 set outFile ${D}inputFiles; outFile=${D}2
1003fi
1004
1005# If it is an archive, remove the '!' and the '_%' suffixes
1006case ${D}outFile in
1007*_%!)
1008 outFile=\`basnam ${D}outFile _%!\`
1009 ;;
1010*)
1011 ;;
1012esac
1013case ${D}outFile in
1014*.dll)
1015 outFile=\`basnam ${D}outFile .dll\`
1016 ;;
1017*.DLL)
1018 outFile=\`basnam ${D}outFile .DLL\`
1019 ;;
1020*.o)
1021 outFile=\`basnam ${D}outFile .o\`
1022 ;;
1023*.obj)
1024 outFile=\`basnam ${D}outFile .obj\`
1025 ;;
1026*.a)
1027 outFile=\`basnam ${D}outFile .a\`
1028 ;;
1029*.lib)
1030 outFile=\`basnam ${D}outFile .lib\`
1031 ;;
1032*)
1033 ;;
1034esac
1035case ${D}outimpFile in
1036*.a)
1037 outimpFile=\`basnam ${D}outimpFile .a\`
1038 ;;
1039*.lib)
1040 outimpFile=\`basnam ${D}outimpFile .lib\`
1041 ;;
1042*)
1043 ;;
1044esac
1045if @<:@ -z ${D}outimpFile @:>@; then
1046 outimpFile=${D}outFile
1047fi
1048defFile="${D}{outFile}.def"
1049arcFile="${D}{outimpFile}.a"
1050arcFile2="${D}{outimpFile}.lib"
1051
1052#create ${D}dllFile as something matching 8.3 restrictions,
1053if @<:@ -z ${D}renameScript @:>@ ; then
1054 dllFile="${D}outFile"
1055else
1056 dllFile=\`${D}renameScript ${D}outimpFile\`
1057fi
1058
1059if @<:@ ${D}do_backup -ne 0 @:>@ ; then
1060 if @<:@ -f ${D}arcFile @:>@ ; then
1061 doCommand "mv ${D}arcFile ${D}{outFile}_s.a"
1062 fi
1063 if @<:@ -f ${D}arcFile2 @:>@ ; then
1064 doCommand "mv ${D}arcFile2 ${D}{outFile}_s.lib"
1065 fi
1066fi
1067
1068# Extract public symbols from all the object files.
1069tmpdefFile=${D}{defFile}_%
1070rm -f ${D}tmpdefFile
1071for file in ${D}inputFiles ; do
1072 case ${D}file in
1073 *!)
1074 ;;
1075 *)
1076 doCommand "emxexp -u ${D}file >> ${D}tmpdefFile"
1077 ;;
1078 esac
1079done
1080
1081# Create the def file.
1082rm -f ${D}defFile
1083echo "LIBRARY \`basnam ${D}dllFile\` ${D}library_flags" >> ${D}defFile
1084dllFile="${D}{dllFile}.dll"
1085if @<:@ ! -z ${D}description @:>@; then
1086 echo "DESCRIPTION \\"${D}{description}\\"" >> ${D}defFile
1087fi
1088echo "EXPORTS" >> ${D}defFile
1089
1090doCommand "cat ${D}tmpdefFile | sort.exe | uniq.exe > ${D}{tmpdefFile}%"
1091grep -v "^ *;" < ${D}{tmpdefFile}% | grep -v "^ *${D}" >${D}tmpdefFile
1092
1093# Checks if the export is ok or not.
1094for word in ${D}exclude_symbols; do
1095 grep -v ${D}word < ${D}tmpdefFile >${D}{tmpdefFile}%
1096 mv ${D}{tmpdefFile}% ${D}tmpdefFile
1097done
1098
1099
1100if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then
1101 sed "=" < ${D}tmpdefFile | \\
1102 sed '
1103 N
1104 : loop
1105 s/^\\(@<:@0-9@:>@\\+\\)\\(@<:@^;@:>@*\\)\\(;.*\\)\\?/\\2 @\\1 NONAME/
1106 t loop
1107 ' > ${D}{tmpdefFile}%
1108 grep -v "^ *${D}" < ${D}{tmpdefFile}% > ${D}tmpdefFile
1109else
1110 rm -f ${D}{tmpdefFile}%
1111fi
1112cat ${D}tmpdefFile >> ${D}defFile
1113rm -f ${D}tmpdefFile
1114
1115# Do linking, create implib, and apply lxlite.
1116gccCmdl="";
1117for file in ${D}inputFiles ; do
1118 case ${D}file in
1119 *!)
1120 ;;
1121 *)
1122 gccCmdl="${D}gccCmdl ${D}file"
1123 ;;
1124 esac
1125done
1126doCommand "${D}CC ${D}CFLAGS -Zdll -o ${D}dllFile ${D}defFile ${D}gccCmdl ${D}EXTRA_CFLAGS"
1127touch "${D}{outFile}.dll"
1128
1129doCommand "emximp -o ${D}arcFile ${D}defFile"
1130if @<:@ ${D}flag_USE_LXLITE -ne 0 @:>@; then
1131 add_flags="";
1132 if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then
1133 add_flags="-ynd"
1134 fi
1135 doCommand "lxlite -cs -t: -mrn -mln ${D}add_flags ${D}dllFile"
1136fi
1137doCommand "emxomf -s -l ${D}arcFile"
1138
1139# Successful exit.
1140CleanUp 1
1141exit 0
1142EOF
1143dnl ===================== dllar.sh ends here =====================
1144])
1145
1146AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS],
1147[
1148dnl ===================== bk-deps begins here =====================
1149D='$'
1150cat <<EOF >bk-deps
1151#!/bin/sh
1152
1153# This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
1154# script. It is used to track C/C++ files dependencies in portable way.
1155#
1156# Permission is given to use this file in any way.
1157
1158DEPSMODE=${DEPSMODE}
1159DEPSDIR=.deps
1160DEPSFLAG_GCC="${DEPSFLAG_GCC}"
1161
1162mkdir -p ${D}DEPSDIR
1163
1164if test ${D}DEPSMODE = gcc ; then
1165 ${D}* ${D}{DEPSFLAG_GCC}
1166 status=${D}?
1167 if test ${D}{status} != 0 ; then
1168 exit ${D}{status}
1169 fi
1170 # move created file to the location we want it in:
1171 while test ${D}# -gt 0; do
1172 case "${D}1" in
1173 -o )
1174 shift
1175 objfile=${D}1
1176 ;;
1177 -* )
1178 ;;
1179 * )
1180 srcfile=${D}1
1181 ;;
1182 esac
1183 shift
1184 done
1185 depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\`
1186 depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\`
1187 if test -f ${D}depfile ; then
1188 sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
1189 rm -f ${D}depfile
1190 else
1191 depfile=\`basename ${D}objfile | sed -e 's/\\..*${D}/.d/g'\`
1192 if test -f ${D}depfile ; then
1193 sed -e "/^${D}objfile/!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{DEPSDIR}/${D}{objfile}.d
1194 rm -f ${D}depfile
1195 fi
1196 fi
1197 exit 0
1198else
1199 ${D}*
1200 exit ${D}?
1201fi
1202EOF
1203dnl ===================== bk-deps ends here =====================
1204])
1205
1206AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH],
1207[
1208dnl ===================== shared-ld-sh begins here =====================
1209D='$'
1210cat <<EOF >shared-ld-sh
1211#!/bin/sh
1212#-----------------------------------------------------------------------------
1213#-- Name: distrib/mac/shared-ld-sh
1214#-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X
1215#-- Author: Gilles Depeyrot
1216#-- Copyright: (c) 2002 Gilles Depeyrot
1217#-- Licence: any use permitted
1218#-----------------------------------------------------------------------------
1219
1220verbose=0
1221args=""
1222objects=""
1223linking_flag="-dynamiclib"
1224
1225while test ${D}# -gt 0; do
1226 case ${D}1 in
1227
1228 -v)
1229 verbose=1
1230 ;;
1231
1232 -o|-compatibility_version|-current_version|-framework|-undefined|-install_name)
1233 # collect these options and values
1234 args="${D}{args} ${D}1 ${D}2"
1235 shift
1236 ;;
1237
1238 -l*|-L*|-flat_namespace|-headerpad_max_install_names)
1239 # collect these options
1240 args="${D}{args} ${D}1"
1241 ;;
1242
1243 -dynamiclib|-bundle)
1244 linking_flag="${D}1"
1245 ;;
1246
1247 -*)
1248 echo "shared-ld: unhandled option '${D}1'"
1249 exit 1
1250 ;;
1251
1252 *.o | *.a | *.dylib)
1253 # collect object files
1254 objects="${D}{objects} ${D}1"
1255 ;;
1256
1257 *)
1258 echo "shared-ld: unhandled argument '${D}1'"
1259 exit 1
1260 ;;
1261
1262 esac
1263 shift
1264done
1265
1266#
1267# Link one module containing all the others
1268#
1269if test ${D}{verbose} = 1; then
1270 echo "c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o"
1271fi
1272c++ -r -keep_private_externs -nostdlib ${D}{objects} -o master.${D}${D}.o
1273status=${D}?
1274if test ${D}{status} != 0; then
1275 exit ${D}{status}
1276fi
1277
1278#
1279# Link the shared library from the single module created
1280#
1281if test ${D}{verbose} = 1; then
1282 echo "cc ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
1283fi
1284c++ ${D}{linking_flag} master.${D}${D}.o ${D}{args}
1285status=${D}?
1286if test ${D}{status} != 0; then
1287 exit ${D}{status}
1288fi
1289
1290#
1291# Remove intermediate module
1292#
1293rm -f master.${D}${D}.o
1294
1295exit 0
1296EOF
1297dnl ===================== shared-ld-sh ends here =====================
1298])
1299
1300AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH],
1301[
1302dnl ===================== bk-make-pch begins here =====================
1303D='$'
1304cat <<EOF >bk-make-pch
1305#!/bin/sh
1306
1307# This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
1308# script. It is used to generated precompiled headers.
1309#
1310# Permission is given to use this file in any way.
1311
1312outfile="${D}{1}"
1313header="${D}{2}"
1314shift
1315shift
1316
1317compiler=
1318headerfile=
1319while test ${D}{#} -gt 0; do
1320 case "${D}{1}" in
1321 -I* )
1322 incdir=\`echo ${D}{1} | sed -e 's/-I\\(.*\\)/\\1/g'\`
1323 if test "x${D}{headerfile}" = "x" -a -f "${D}{incdir}/${D}{header}" ; then
1324 headerfile="${D}{incdir}/${D}{header}"
1325 fi
1326 ;;
1327 esac
1328 compiler="${D}{compiler} ${D}{1}"
1329 shift
1330done
1331
1332if test "x${D}{headerfile}" = "x" ; then
1333 echo "error: can't find header ${D}{header} in include paths" >2
1334else
1335 if test -f ${D}{outfile} ; then
1336 rm -f ${D}{outfile}
1337 else
1338 mkdir -p \`dirname ${D}{outfile}\`
1339 fi
1340 depsfile=".deps/\`echo ${D}{outfile} | tr '/.' '__'\`.d"
1341 mkdir -p .deps
1342 # can do this because gcc is >= 3.4:
1343 ${D}{compiler} -o ${D}{outfile} -MMD -MF "${D}{depsfile}" "${D}{headerfile}"
1344 exit ${D}{?}
1345fi
1346EOF
1347dnl ===================== bk-make-pch ends here =====================
1348])
This page took 0.34372 seconds and 4 git commands to generate.