hid/common/hidgl.c: Simplify angle calculation for drawing line caps
[geda-pcb/pcjc2.git] / configure.ac
bloba802790cd2cc68ede43c04781a4d6ded39e4fda0
1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([pcb], [1.99z])
4 AC_CONFIG_SRCDIR([src/draw.c])
5 AC_PREREQ([2.60])
6 AM_INIT_AUTOMAKE([1.9])
7 AC_GNU_SOURCE
8 AM_CONFIG_HEADER([config.h])
10 ##########################################################################
12 # Try to figure out if we are building from git sources.
13 # If we are then unless building of the documentation has
14 # been disabled then just require the user have all the right
15 # tools.  Users building from a tarball won't need latex, makeinfo,
16 # etc. but if you're already downloading development sources, then
17 # it is not unreasonable to require development tools.  What motivated
18 # this is that using maintainer mode proved to cause regular confusion.
20 pcb_sources="tarball"
21 AC_MSG_CHECKING([if you are building from a git checkout])
22 pcb_git_version=no
23 if test -f $srcdir/.gitignore ; then
24         pcb_git_version=yes
25         AC_MSG_RESULT([yes])
26         pcb_sources="GIT"
27 else
28         AC_MSG_RESULT([no])
30 AM_CONDITIONAL(GIT_VERSION, test x$pcb_git_version = xyes)
32 AC_MSG_CHECKING([if you are building from a anoncvs checkout])
33 pcb_cvs_version=no
34 if test -f $srcdir/CVS/Root ; then
35         pcb_cvs_version=yes
36         AC_MSG_RESULT([yes])
37         pcb_sources="CVS"
38 else
39         AC_MSG_RESULT([no])
41 AM_CONDITIONAL(CVS_VERSION, test x$pcb_cvs_version = xyes)
42 AM_CONDITIONAL(GIT_OR_CVS_VERSION, test x$pcb_git_version = xyes -o x$pcb_cvs_version = xyes)
45 ##########################################################################
47 # See if we are supposed to build the docs
50 docs_yesno=yes
51 AC_MSG_CHECKING([if the documentation should be built])
52 AC_ARG_ENABLE([doc],
53 [  --enable-doc            Build and install the documentation [[default=yes]]],
55 if test "X$enable_doc" = "Xno" ; then
56         DOC=""
57         AC_MSG_RESULT([no])
58         docs_yesno=no
59 else
60         DOC=doc
61         AC_MSG_RESULT([yes])
62         docs_yesno=yes
66 DOC=doc
67 AC_MSG_RESULT([yes])
68 docs_yesno=yes
70 AC_SUBST(DOC)
73 AC_MSG_CHECKING([if maintainer mode is required])
74 if test "$docs_yesno" = "yes" -a "$pcb_git_version" = "yes" ; then
75         AC_MSG_RESULT([yes -- the documentation build is enabled and your sources are from git])
76         enable_maintainer_mode=yes
77 else
78         AC_MSG_RESULT([no])
81 AM_MAINTAINER_MODE
84 dnl determine host type
85 AC_CANONICAL_HOST
86 AC_MSG_CHECKING(for windows)
87 PCB_PATH_DELIMETER=":"
88 PCB_DIR_SEPARATOR_S="/"
89 PCB_DIR_SEPARATOR_C='/'
90 case $host in
91         *-*-cygwin* )
92                 CFLAGS="$CFLAGS ${CYGWIN_CFLAGS}"
93                 CPPFLAGS="$CPPFLAGS ${CYGWIN_CPPFLAGS}"
94                 ;;
96         *-*-mingw* )
97                 WIN32=yes
98                 CFLAGS="$CFLAGS ${MINGW_CFLAGS:--mms-bitfields -mwindows}"
99                 CPPFLAGS="$CPPFLAGS ${MINGW_CPPFLAGS:--mms-bitfields -mwindows}"
100                 ;;
102         * )
103                 WIN32=no
104                 ;;
105 esac
107 AC_MSG_RESULT($WIN32)
108 AC_SUBST(WIN32)
109 AM_CONDITIONAL(WIN32, test x$WIN32 = xyes)
110 if test "x$WIN32" = "xyes" ; then
111         PCB_PATH_DELIMETER=";"
112         PCB_DIR_SEPARATOR_S="\\\\"
113         PCB_DIR_SEPARATOR_C='\\'
116 AC_DEFINE_UNQUOTED(PCB_DIR_SEPARATOR_C,'$PCB_DIR_SEPARATOR_C',[Directory separator char])
117 AC_DEFINE_UNQUOTED(PCB_DIR_SEPARATOR_S,"$PCB_DIR_SEPARATOR_S",[Directory separator string])
118 AC_DEFINE_UNQUOTED(PCB_PATH_DELIMETER,"$PCB_PATH_DELIMETER",[Search path separator string])
121 dnl Checks for programs.
122 AC_PROG_CC
123 AC_PROG_CXX
125 if test "x$WIN32" = "xyes" ; then
126         AC_CHECK_TOOL(WINDRES, windres, [no])
127         if test "$WINDRES" = "no" ; then
128                 AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
129         fi
132 # i18n
133 GETTEXT_PACKAGE=$PACKAGE
134 AH_TEMPLATE([GETTEXT_PACKAGE], [Name of this program's gettext domain])
135 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"])
136 AC_SUBST(GETTEXT_PACKAGE)
138 AM_GNU_GETTEXT_VERSION([0.14])
139 AM_GNU_GETTEXT
140 IT_PROG_INTLTOOL([0.35.0])
142 AC_C_INLINE
143 AC_PROG_CC_STDC
144 AM_PROG_CC_C_O
145 AC_PROG_CPP
146 AC_PROG_AWK
147 AC_PROG_MKDIR_P
149 AM_PROG_LEX
150 AC_PATH_PROG(LEX_PATH, $LEX, [notfound])
151 if test "$LEX_PATH" = "notfound" ; then
152         AC_MSG_ERROR([Couldn't find a usable lex program.
153 Please install flex which is available from
154 ftp://ftp.gnu.org/pub/non-gnu/flex/
159 AC_PROG_YACC
160 AC_PATH_PROG(YACC_PATH, $YACC, [notfound])
161 if test "$YACC_PATH" = "notfound" ; then
162         AC_MSG_ERROR([Couldn't find a usable yacc program.
163 Please install bison which is available from
164 ftp://ftp.gnu.org/pub/gnu/bison/
168 AC_PROG_INSTALL
169 AC_PROG_RANLIB
172 # Used for building the icons
174 AC_PATH_PROG(XPMTOPPM, xpmtoppm, notfound)
175 AC_PATH_PROG(PPMTOWINICON, ppmtowinicon, notfound)
176 AC_PATH_PROG(CONVERT, convert, notfound)
178 ##########################################################################
181 if test "X$docs_yesno" = "Xyes" -a "X$pcb_git_version" = "Xyes" ; then
182    AC_PATH_PROG(MKINFO, makeinfo, no)
183    if test "X$MKINFO" != "Xno"; then
184       AC_MSG_CHECKING([for GNU makeinfo version >= 4.6])
185       v=`$MKINFO --version | grep "GNU texinfo"`
186       if test $? -ne 0; then
187          AC_MSG_RESULT([non-GNU])
188          MKINFO="no"
189       fi
190    fi
191    if test "X$MKINFO" != "Xno"; then
192       vmajor=`echo "$v" | sed 's/.* \([[0-9]]*\)\.\([[0-9]]*\)$/\1/'`
193       vminor=`echo "$v" | sed 's/.* \([[0-9]]*\)\.\([[0-9]]*\)$/\2/'`
194       AC_MSG_RESULT([$vmajor.$vminor])
195       if test "$vmajor" -lt 4 \
196               || (test "$vmajor" -eq 4 && test "$vminor" -lt 6); then
197          MKINFO=no
198       fi
199    fi
200    if test "X$MKINFO" = "Xno"; then
201       AC_MSG_ERROR([You have requested a build
202 of the documentation.  For this to work, you must have version 4.6 or newer of
203 the GNU texinfo package.  You seem to have
207 Please update to a newer version of texinfo or disable building of
208 the documentation with --disable-doc
210    fi
212    AC_PATH_PROG(TEXI2DVI, texi2dvi, no)
213    if test "X$TEXI2DVI" = "Xno"; then
214       AC_MSG_ERROR([You have requested a build
215 of the documentation.  For this to work, you must have the texi2dvi program
216 installed.  Alternatively, you can disable building the documentation with
217 --disable-doc.])
218    fi
221         AC_PATH_PROG(PERL, perl, notfound)
222         if test "X$PERL" = "Xnotfound"; then
223                         AC_MSG_ERROR([You have requested a build
224 of the documentation.  For this to work, you must have perl installed.
225 Alternatively, you can disable building the documentation with
226 --disable-doc.
228         fi
231    AC_PATH_PROG([KPSEWHICH], [kpsewhich], [no])
232    if test "X$KPSEWHICH" = "Xno"; then
233       AC_MSG_ERROR([You have requested a build
234 of the documentation.  For this to work, you must have a functional install of
235 TeX and LaTeX.  kpsewhich is part of TeX.
236 Alternatively, you can disable building the documentation with
237 --disable-doc.])
238    fi
240    AC_MSG_CHECKING([If your TeX installation contains epsf.tex])
241    f=`$KPSEWHICH epsf.tex`
242    if test $? -eq 0 ; then
243         AC_MSG_RESULT([yes ($f)])
244    else
245         AC_MSG_RESULT([no])
246         AC_MSG_ERROR([You have requested a build
247 of the documentation.  For this to work, you must have a functional install of
248 TeX and LaTeX that includes epsf.tex.  On some linux distributions this is
249 part of the texlive-generic-recommended package.
250 Alternatively, you can disable building the documentation with
251 --disable-doc.])
252    fi
256 ##########################################################################
260 # FIXME:  for now, only try to add -rdynamic if we're using gcc.  We really
261 # need to figure out what the correct test is here.  In the mean time, this
262 # should let things build with SunPRO again.
263 if test "x$GCC" = "xyes"; then
264 AC_MSG_CHECKING([If the compiler accepts -rdynamic])
265 old_LDFLAGS="$LDFLAGS"
266 LDFLAGS="$LDFLAGS -rdynamic"
267 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
268         [AC_MSG_RESULT([yes])],
269         [LDFLAGS="$old_LDFLAGS"
270         AC_MSG_RESULT([no])
271         ])
274 # ------------- HID config -------------------
276 hid_guis=""
277 hid_printers=""
278 hid_exporters=""
279 hid_always=""
281 for hid in `cd $srcdir/src/hid; echo *`; do
282     F=$srcdir/src/hid/$hid/hid.conf
283     if test -f $F 
284     then
285     echo checking $F
286         . $F
287         case $type in
288           gui ) hid_guis="$hid_guis $hid" ;;
289           printer ) hid_printers="$hid_printers $hid" ;;
290           export ) hid_exporters="$hid_exporters $hid" ;;
291           always ) hid_always="$hid_always $hid" ;;
292         esac
293     fi
294 done
296 AC_MSG_CHECKING([for which gui to use])
297 AC_ARG_WITH([gui],
298 [  --with-gui=            Specify the GUI to use: batch gtk lesstif [[default=gtk]]],
300 [with_gui=gtk]
302 AC_MSG_RESULT([$with_gui])
303 case " $hid_guis no none " in
304      *\ $with_gui\ * ) HIDLIST="$with_gui" ;;
305      * ) AC_MSG_ERROR([$with_gui is not a valid gui]) ;;
306 esac
308 if test x"$with_gui" = x"none" -o x"$with_gui" = x"no"
309 then
310     HIDLIST=
313 AC_MSG_CHECKING([whether to enable toporouter])
314 AC_ARG_ENABLE([toporouter],
315  [AS_HELP_STRING([--enable-toporouter], [build toporouter [default=yes]]) ]
317 AS_CASE(["x$enable_toporouter"],[xyes | xno],,
318  [enable_toporouter=yes
321 AC_MSG_RESULT([$enable_toporouter])
322 AM_CONDITIONAL([WITH_TOPOROUTER], test $enable_toporouter != no)
324 AC_MSG_CHECKING([whether to enable toporouter output])
325 AC_ARG_ENABLE([toporouter-output],
326  [AS_HELP_STRING([--enable-toporouter-output], [enable toporouter graphical output [default=no]]) ]
328 AS_CASE(["z$enable_toporouter_output"],[zyes | zno],,
329  [enable_toporouter_output=no]
331 AC_MSG_RESULT([$enable_toporouter_output])
332 AS_CASE([$enable_toporouter_output],[yes],
334   topo_output_enabled=1
335  ],
337   topo_output_enabled=0
340 AC_DEFINE_UNQUOTED([TOPO_OUTPUT_ENABLED], [$topo_output_enabled],
341  [Define to 1 to enable toporouter graphical output]
344 PKG_PROG_PKG_CONFIG()
346 if test "x$enable_toporouter_output" = "xyes"; then
347    PKG_CHECK_MODULES(CAIRO, cairo,,
348                      [AC_MSG_ERROR([Cannot find cairo, needed by the toporouter
349 Please review the following errors:
350 $CAIRO_PKG_ERRORS])]
351    )
354 AC_MSG_CHECKING([for whether to use DBUS])
355 AC_ARG_ENABLE([dbus],
356 [  --enable-dbus           Enable DBUS IPC],
357 [],[
358         case " $with_gui " in
359                 *\ gtk\ *)     enable_dbus=yes ;;
360                 *\ lesstif\ *) enable_dbus=yes ;;
361                 * )            enable_dbus=no ;;
362         esac
365 AC_MSG_RESULT([$enable_dbus])
366 AM_CONDITIONAL(WITH_DBUS, test x$enable_dbus = xyes)
368 if test "x$enable_dbus" = "xyes"; then
369         case " $with_gui " in
370                 *\ gtk\ *) ;;
371                 *\ lesstif\ *) ;;
372                 * ) AC_MSG_ERROR([DBUS enabled but only works with a mainloop capable GUI HID.
373 Either do not use --enable-dbus or enable the gtk or lesstif GUI HID.])
374         esac
375         
376         PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.61,
377                 [saved_LIBS="$LIBS"
378                  LIBS="$LIBS $DBUS_LIBS"
379                  AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
380                  LIBS="$saved_LIBS" ],
381                 [AC_MSG_ERROR([Cannot find dbus-1 >= 0.61, install it and rerun ./configure
382 Please review the following errors:
383 $DBUS_PKG_ERRORS])]
384         )
385         DBUS_VERSION=`$PKG_CONFIG dbus-1 --modversion`
386         
387         AC_DEFINE([HAVE_DBUS], 1,
388                 [Define to 1 if DBUS IPC is to be compiled in])
393 AC_MSG_CHECKING([for whether to use GL drawing])
394 AC_ARG_ENABLE([gl],
395 [  --enable-gl           Enable GL drawing (with GTK HID)],
396 [],[
397         case " $with_gui " in
398                 *\ gtk\ *) enable_gl=yes;;
399                 * ) enable_gl=no;;
400         esac
402 AC_MSG_RESULT([$enable_gl])
403 AM_CONDITIONAL(USE_GL, test x$enable_gl = xyes)
405 if test "x$enable_gl" = "xyes"; then
406         case " $with_gui " in
407                 *\ gtk\ *) ;;
408                 * ) AC_MSG_ERROR([GL drawing enabled but only works with the GTK HID.
409 Either do not use --enable-gl or enable the gtk HID.])
410         ;;
411         esac
413         AX_CHECK_GL
414         AS_IF([test X$no_gl = Xyes],
415               [AC_MSG_FAILURE([OpenGL is required.])])
417         AX_CHECK_GLU
418         AS_IF([test X$no_glu = Xyes],
419               [AC_MSG_FAILURE([The OpenGL GLU library is required.])])
421         AC_DEFINE([ENABLE_GL], 1,
422                 [Define to 1 if GL support is to be compiled in])
425 AC_MSG_CHECKING([for which printer to use])
426 AC_ARG_WITH([printer],
427 [  --with-printer=        Specify the printer: lpr [[default=lpr]]],
428 [],[with_printer=lpr])
429 AC_MSG_RESULT([$with_printer])
430 case " $hid_printers " in
431      *\ $with_printer\ * )
432          HIDLIST="$HIDLIST $with_printer"
433          ;;
434      * ) AC_MSG_ERROR([$with_printer is not a valid printer]) ;;
435 esac
437 AC_MSG_CHECKING([for which exporters to use])
438 AC_ARG_WITH([exporters],
439 [  --with-exporters=       Enable export devices: bom gerber gcode nelma png ps [[default=bom gerber gcode nelma png ps]]],
440 [],[with_exporters=$hid_exporters])
441 AC_MSG_RESULT([$with_exporters])
442 for e in `echo $with_exporters | sed 's/,/ /g'`; do
443     case " $hid_exporters " in
444       *\ $e\ * )
445          HIDLIST="$HIDLIST $e"
446          ;;
447       * ) AC_MSG_ERROR([$e is not a valid exporter]) ;;
448     esac
449 done
451 if test "X$enable_jpeg" = "Xno" -a "X$enable_gif" = "Xno" -a "X$enable_png" = "Xno" ; then
452         case " ${HIDLIST} " in
453                 *\ png\ *)
454                         AC_MSG_ERROR([you have requested the png HID but turned off all output
455 formats!  If you do not want gif/jpeg/png output, use --with-exporters to list
456 which exporters you want and do not list png there.])
457                         ;;
459                 *)
460                         ;;
461         esac
464 for hid in $HIDLIST; do
465     F=$srcdir/src/hid/$hid/hid.conf
466     if test -f $F ; then
467         echo checking $hid depedencies
468         deps=
469         . $F
470         for dep in $deps; do
471             if test "X`echo $HIDLIST | grep $dep`" = "X"; then
472                 AC_MSG_ERROR([you have requested the $hid HID but not the $dep HID, which it depends on])
473             fi
474         done
475    fi
476 done
478 for e in $HIDLIST; do
479     HIDLIBS="$HIDLIBS lib$e.a"
480 done
482 AC_SUBST(HIDLIST)
483 AC_SUBST(HIDLIBS)
485 # ------------- end HID config -------------------
487 ######################################################################
489 # desktop integration
492 AC_PATH_PROG(SETENV, env, [])
493 AC_PATH_PROG(GTK_UPDATE_ICON_CACHE_BIN, gtk-update-icon-path, [true])
495 # Change default location for XDG files (MIME and Icons)
496 AC_ARG_WITH(xdgdatadir, [  --with-xdgdatadir=path  Change where the theme icons 
497 and mime registrations are installed [[DATADIR]]], [opt_xdgdatadir=$withval])
499 # Change default location for KDE data files (KDE MIME registrations)
500 AC_ARG_WITH(kdedatadir, [  --with-kdedatadir=path  Change where the KDE mime reg
501 istrations are installed [[DATADIR]]], [opt_kdedatadir=$withval])
503 if test x$opt_xdgdatadir = x; then
504         # path was not specified with --with-xdgdatadir
505         XDGDATADIR='${datadir}'
506 else
507         # path WAS specified with --with-xdgdatadir
508         XDGDATADIR="$opt_xdgdatadir"
510 AC_SUBST(XDGDATADIR)
512 if test x$opt_kdedatadir = x; then
513         # path was not specified with --with-kdedatadir
514         KDEDATADIR='${datadir}'
515 else
516         # path WAS specified with --with-kdedatadir
517         KDEDATADIR="$opt_kdedatadir"
519 AC_SUBST(KDEDATADIR)
521 AC_ARG_ENABLE(update-desktop-database,
522         AC_HELP_STRING([--disable-update-desktop-database],
523         [do not update desktop database after installation]),,
524         enable_update_desktop_database=yes)
526 AM_CONDITIONAL(ENABLE_UPDATE_DESKTOP_DATABASE, test x$enable_update_desktop_database = xyes)
528 if test x$enable_update_desktop_database = xyes ; then
529         AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, [update-desktop-database], no)
530         if test $UPDATE_DESKTOP_DATABASE = no; then
531         AC_MSG_ERROR([Cannot find update-desktop-database, make sure it is installed and in your PATH, or configure with --disable-update-desktop-database])
532         fi
535 AC_ARG_ENABLE(update-mime-database,
536         AC_HELP_STRING([--disable-update-mime-database],
537         [do not update mime database after installation]),,
538         enable_update_mime_database=yes)
540 AM_CONDITIONAL(ENABLE_UPDATE_MIME_DATABASE, test x$enable_update_mime_database = xyes)
542 if test x$enable_update_mime_database = xyes ; then
543         AC_PATH_PROG(UPDATE_MIME_DATABASE, [update-mime-database], no)
544         if test $UPDATE_MIME_DATABASE = no; then
545         AC_MSG_ERROR([Cannot find update-mime-database, make sure it is installed and in your PATH, or configure with --disable-update-mime-database])
546         fi
550 ######################################################################
552 AC_PATH_PROGS(M4, gm4 m4, [none])
553 if test "X$M4" = "Xnone" ; then
554         AC_MSG_ERROR([Did not find a m4 executible.  You need to make sure
555         that m4 is installed on your system and that m4 is in your path])
557 AC_MSG_CHECKING([if $M4 has the division involving negative numbers bug])
558 pcb_m4_r=`echo "eval(-2/2)" | $M4`
559 if test "$pcb_m4_r" != "-1" ; then
560         AC_MSG_RESULT([yes])
561         AC_MSG_ERROR([It appears that $M4 has a bug involving division
562 with negative numbers.  In particular it just returned the result that
563 -2/2 = $pcb_m4_r instead of -1.  This is a known bug in GNU m4-1.4.9.  Please
564 install a non-broken m4.])
565 else
566         AC_MSG_RESULT([no])
570 AC_PATH_PROGS(WISH, wish wish85 wish8.5 wish83 wish8.3 wish80 wish8.0 cygwish83 cygwish80,[none])
571 if test "X$WISH" = "Xnone" ; then
572         AC_MSG_ERROR([Did not find the wish executible.  You need to make sure
573         that tcl is installed on your system and that wish is in your path])
576 AC_DEFINE_UNQUOTED(M4,$M4,[m4 executible])
577 GNUM4=$M4
578 AC_SUBST(GNUM4)
579 AC_DEFINE_UNQUOTED(GNUM4,"$M4",[m4 program used by pcb])
581 AC_PATH_PROG(PDFLATEX, pdflatex, notfound)
582 AM_CONDITIONAL(MISSING_PDFLATEX, test x$PDFLATEX = xnotfound)
584 AC_PATH_PROG(TEXI2DVI, texi2dvi, notfound)
585 AM_CONDITIONAL(MISSING_TEXI2DVI, test x$TEXI2DVI = xnotfound)
587 AC_PATH_PROG(PS2PDF, ps2pdf, notfound)
588 AM_CONDITIONAL(MISSING_PS2PDF, test x$PS2PDF = xnotfound)
590 # used to build some of the getting started guide
591 AC_PATH_PROG(GSCHEM, gschem, notfound)
592 AM_CONDITIONAL(MISSING_GSCHEM, test x$GSCHEM = xnotfound)
594 if test "X$docs_yesno" = "Xyes" -a "X$pcb_git_version" = "Xyes" ; then
595         if test "$PDFLATEX" = "notfound" -o "$TEXI2DVI" = "notfound" -o "$PS2PDF" = "notfound" ; then
596                 AC_MSG_ERROR([It appears that you are building from a source tree obtained
597 via git but you do not have the required tools installed to build the documentation.  Here
598 is a list of tools and the detected values:
599 PDFLATEX:  $PDFLATEX
600 TEXI2DVI:  $TEXI2DVI
601 PS2PDF:    $PS2PDF
602 GSCHEM:    $GSCHEM
604 Either make sure these tools are installed or disable building and installing the documentation
605 by using the --disable-doc configure option.
607         fi
610 ############################################################################
612 # These checks are for tools used by the testsuite.  It will not be fatal
613 # if these are missing because this is primarily for developer use.  It is
614 # possible that we might add some --enable flag in the future that forces
615 # full tools for development work.
617 # Check for ImageMagick tools used by the testsuite
618 AC_PATH_PROG(IM_ANIMATE, animate, notfound)
619 AC_PATH_PROG(IM_COMPARE, compare, notfound)
620 AC_PATH_PROG(IM_COMPOSITE, composite, notfound)
621 AC_PATH_PROG(IM_CONVERT, convert, notfound)
622 AC_PATH_PROG(IM_DISPLAY, display, notfound)
623 AC_PATH_PROG(IM_MONTAGE, montage, notfound)
624 missing_magick=""
625 test "${IM_ANIMATE}" != "notfound" || missing_magick="${missing_magick} animate"
626 test "${IM_COMPARE}" != "notfound" || missing_magick="${missing_magick} compare"
627 test "${IM_COMPOSITE}" != "notfound" || missing_magick="${missing_magick} composite"
628 test "${IM_CONVERT}" != "notfound" || missing_magick="${missing_magick} convert"
629 test "${IM_DISPLAY}" != "notfound" || missing_magick="${missing_magick} display"
630 test "${IM_MONTAGE}" != "notfound" || missing_magick="${missing_magick} montage"
632 AC_MSG_CHECKING([if all ImageMagick tools needed for the testsuite were found])
633 if test "X${missing_magick}" != "X" ; then
634     AC_MSG_RESULT([no.  The testsuite will be disabled because the following
635 tools from the ImageMagick suite were not found:
636 ${missing_magick}
637 No loss in pcb functionality should be experienced, you just will not
638 be able to run the full regression testsuite.
640     have_magick=no
641 else
642     AC_MSG_RESULT([yes])
643     have_magick=yes
646 have_test_tools=yes
648 test $have_magick = yes || have_test_tools=no
650 # the RS274-X export HID is partially checked by looking at the result with
651 # gerbv
652 AC_PATH_PROG(GERBV, gerbv, notfound)
653 test $GERBV != notfound || have_test_tools=no
656 AM_CONDITIONAL(HAVE_TEST_TOOLS, test x$have_test_tools = xyes)
657 AC_MSG_CHECKING([if all the requried testsuite tools were found])
658 if test x$have_test_tools = xyes ; then
659         AC_MSG_RESULT([yes])
660 else
661         AC_MSG_RESULT([no -- the testsuite will be disabled])
666 ############################################################################
669 dnl Checks for libraries.
670 AC_CHECK_LIB(m, sqrt)
671 AC_CHECK_LIB(dl, dlopen)
672 AC_CHECK_LIB(xnet, gethostbyname)
673 AC_CHECK_LIB(fl, yywrap)
674 AC_CHECK_FUNCS(strerror)
675 AC_CHECK_FUNCS(regcomp re_comp)
676 AC_CHECK_FUNCS(logf expf rint)
677 AC_CHECK_FUNCS(vsnprintf)
678 AC_CHECK_FUNCS(getpwuid getcwd)
679 AC_CHECK_FUNCS(rand random)
680 AC_CHECK_FUNCS(stat)
682 AC_CHECK_FUNCS(mkdtemp)
684 # normally used for all file i/o
685 AC_CHECK_FUNCS(popen)
687 # for lrealpath.c
688 AC_CHECK_FUNCS(realpath canonicalize_file_name)
689 libiberty_NEED_DECLARATION(canonicalize_file_name)
691 # for pcb_spawnvp in action.c on Windows
692 AC_CHECK_FUNCS(_spawnvp)
694 AC_HEADER_STDC
695 AC_CHECK_HEADERS(limits.h locale.h string.h sys/types.h regex.h pwd.h)
696 AC_CHECK_HEADERS(sys/socket.h netinet/in.h netdb.h sys/param.h sys/times.h sys/wait.h)
697 AC_CHECK_HEADERS(dlfcn.h)
699 if test "x${WIN32}" = "xyes" ; then
700         AC_CHECK_HEADERS(windows.h)
702 # Search for glib
703 PKG_CHECK_MODULES(GLIB, glib-2.0, ,
704                 [AC_MSG_RESULT([Note: cannot find glib-2.0.
705 You may want to review the following errors:
706 $GLIB_PKG_ERRORS])]
709 for e in $HIDLIST; do
710     case $e in
711       lesstif )
712         AC_PATH_XTRA
713         CPPFLAGS="$CFLAGS $X_CFLAGS"
714         AC_CHECK_LIB(X11, XOpenDisplay, , , $X_LIBS)
715         AC_CHECK_LIB(ICE, main, , , $X_LIBS)
716         AC_CHECK_LIB(SM, main, , , $X_LIBS)
717         AC_CHECK_LIB(Xext, main, , , $X_LIBS)
718         AC_CHECK_LIB(Xt, XtOpenDisplay, , , $X_LIBS)
719         AC_CHECK_LIB(Xmu, main, , , $X_LIBS)
720         AC_CHECK_LIB(Xpm, main, , , $X_LIBS)
721         AC_CHECK_LIB(Xm, XmCreateMainWindow, , , $X_LIBS)
722         case $ac_cv_lib_Xm_XmCreateMainWindow in
723           no )
724             AC_MSG_ERROR([You don't seem to have the Lesstif development environment installed.])
725             ;;
726           * ) ;;
727         esac
728         AC_CHECK_HEADERS(Xm/Xm.h)
729         case $ac_cv_header_Xm_Xm_h in
730           no )
731             AC_MSG_ERROR([You don't seem to have the Lesstif development environment installed.])
732             ;;
733           * ) ;;
734         esac
735         ;;
737       gtk )
738         # Check for pkg-config
739         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
740         if test "$PKG_CONFIG" = "no"; then
741                 AC_MSG_ERROR([Cannot find pkg-config, make sure it is installed and in your PATH])
742         fi
744         PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.18.0, ,
745                 [AC_MSG_ERROR([Cannot find gtk+ >= 2.18.0, install it and rerun ./configure
746 Please review the following errors:
747 $GTK_PKG_ERRORS])]
748         )
749         GTK_VERSION=`$PKG_CONFIG gtk+-2.0 --modversion`
750         GLIB_VERSION=`$PKG_CONFIG glib-2.0 --modversion`
752         if test "x$enable_gl" = "xyes"; then
753                 # Check for GtkGLExt
754                 PKG_CHECK_MODULES(GTKGLEXT, gtkglext-1.0 >= 1.0.0, , [AC_MSG_ERROR([
755 *** Required version of gtkglext is not installed - please install first ***
756 Please review the following errors:
757 $GTKGLEXT_PKG_ERRORS])]
758                 )
759         GTKGLEXT_VER=`$PKG_CONFIG gtkglext-1.0 --modversion`
760         fi
762         ;;
764       gcode|nelma|png )
765         # Check for gdlib-config for gd (www.boutell.com/gd)
766         AC_PATH_PROG(GDLIB_CONFIG, gdlib-config, no)
767         if test "$GDLIB_CONFIG" = "no"; then
768                 AC_MSG_RESULT([Cannot find gdlib-config.
769 Make sure it is installed and in your PATH.
770 gdlib-config is part of the GD library available from www.boutell.com/gd.
771 This is needed for the png HID.  I will look for libgd anyway and maybe
772 you will get lucky.
774                 if test "$WIN32" != "yes" ; then
775                         AC_CHECK_LIB(gd,main,,
776                         AC_MSG_ERROR([[You have requested gcode, nelma, or png HIDs  but -lgd could not be found]]))
777                 else 
778                         AC_CHECK_LIB(bgd,main,,
779                         AC_MSG_ERROR([[You have requested gcode, nelma, or png HIDs  but -lbgd could not be found]]))
780                 fi
781         else
782                 if test "$WIN32" = "yes" ; then
783                         GD=bgd
784                 else
785                         GD=gd
786                 fi
787                 AC_MSG_CHECKING([for libgd cflags])
788                 GD_CFLAGS="`$GDLIB_CONFIG --cflags`"
789                 AC_MSG_RESULT([$GD_CFLAGS])
790                 AC_MSG_CHECKING([for libgd libs])
791                 GD_LIBS="`$GDLIB_CONFIG --ldflags` `$GDLIB_CONFIG --libs` -l${GD}"
792                 AC_MSG_RESULT([$GD_LIBS])
793         fi
794    
795         # since some linux systems evidently install gdlib-config but fail to
796         # install the headers (nice), check for the header too and fail if it
797         # is not there.
798         CFLAGS="$CFLAGS $GD_CFLAGS"
799         CPPFLAGS="$CPPFLAGS $GD_CFLAGS"
800         AC_CHECK_HEADERS(gd.h)
801         case $ac_cv_header_gd_h in
802              no )
803                 AC_MSG_ERROR([
804 You evidentally do not have a complete installation of the GD library available from www.boutell.com/gd.
805 This is needed for the nelma and/or png HID.
807                 ;;
808              * ) ;;
809         esac
810         
811         # Some versions of gd (prior to the expiration of the
812         # patent related to gif compression) do not support
813         # gif output.  Check for that here.
814         save_LIBS="$LIBS"
815         LIBS="$save_LIBS $GD_LIBS $X_LIBS"
817         AC_MSG_CHECKING([if GIF output from the png HID is desired])
818         AC_ARG_ENABLE([gif],
819                 [  --disable-gif           Disable support for gif output when the png HID is used [[default=include gif support]]],
820                 [
821                 if test "X$enable_gif" != "Xno" ; then
822                         AC_MSG_RESULT([yes])
823                         with_gif=yes
824                 else
825                         AC_MSG_RESULT([no])
826                         with_gif=no
827                 fi
828                 ],
829                 [
830                 AC_MSG_RESULT([yes])
831                 with_gif=yes
832                 ])
833         if test "X$with_gif" = "Xyes" ; then
834                 AC_CHECK_FUNCS(gdImageGif)
835                 if test "$ac_cv_func_gdImageGif" != "yes"; then
836                         AC_MSG_ERROR([Your gd installation does not appear to include gif support.
837 You may need to update your installation of gd or disable
838 gif export with --disable-gif])
839                 fi
840         fi
842         AC_MSG_CHECKING([if JPEG output from the png HID is desired])
843         AC_ARG_ENABLE([jpeg],
844                 [  --disable-jpeg          Disable support for JPEG output when the png HID is used [[default=include JPEG support]]],
845                 [
846                 if test "X$enable_jpeg" != "Xno" ; then
847                         AC_MSG_RESULT([yes])
848                         with_jpeg=yes
849                 else
850                         AC_MSG_RESULT([no])
851                         with_jpeg=no
852                 fi
853                 ],
854                 [
855                 AC_MSG_RESULT([yes])
856                 with_jpeg=yes
857                 ])
858         if test "X$with_jpeg" = "Xyes" ; then
859                 AC_CHECK_FUNCS(gdImageJpeg)
860                 if test "$ac_cv_func_gdImageJpeg" != "yes"; then
861                         AC_MSG_ERROR([Your gd installation does not appear to include JPEG support.
862 You may need to update your installation of gd or disable
863 JPEG export with --disable-jpeg])
864                 fi
865         fi
868         AC_MSG_CHECKING([if PNG output from the png HID is desired])
869         AC_ARG_ENABLE([png],
870                 [  --disable-png           Disable support for PNG output when the png HID is used [[default=include PNG support]]],
871                 [
872                 if test "X$enable_png" != "Xno" ; then
873                         AC_MSG_RESULT([yes])
874                         with_png=yes
875                 else
876                         AC_MSG_RESULT([no])
877                         with_png=no
878                 fi
879                 ],
880                 [
881                 AC_MSG_RESULT([yes])
882                 with_png=yes
883                 ])
884         if test "X$with_png" = "Xyes" ; then
885                 AC_CHECK_FUNCS(gdImagePng)
886                 if test "$ac_cv_func_gdImagePng" != "yes"; then
887                         AC_MSG_ERROR([Your gd installation does not appear to include PNG support.
888 You may need to update your installation of gd or disable
889 PNG export with --disable-png])
890                 fi
891         fi
892         LIBS="$save_LIBS"
893         ;;
895     esac
896 done
899 AM_CONDITIONAL(PNG, test x$with_png = xyes)
900 AM_CONDITIONAL(GIF, test x$with_gif = xyes)
902 # ------------- check if png previews should be built for pcblib-newlib
903 AC_MSG_CHECKING([if the m4lib to newlib export should create png previews])
904 AC_ARG_ENABLE(
905         [m4lib-png],
906         [  --enable-m4lib-png      Enable creating png previews for the m4 library],
907         [],[enable_m4lib_png=no])
908 AC_MSG_RESULT([$enable_m4lib_png])
909 AM_CONDITIONAL(PNG_PREVIEW, test x$enable_m4lib_png = xyes)
912 # Run away.... more ugly stuff here.  By default we don't actually build
913 # pcblib-newlib from pcblib unless we are building from cvs or git sources.
914 # The reason is it takes a while and requires the png HID.  The problem is,
915 # what if someone wants to use --enable-m4lib-png but the tarball was built
916 # without the previews.  Or, what if someone does not want the PNG previews
917 # but the person building the tarball included them.  Ugh!  So what the following
918 # code attempts to do is detect that mismatch situation.  Note that we only
919 # want to kick this code in when *not* building from git or cvs sources.
920 build_pcblib_newlib=no
921 if test "$pcb_sources" = "tarball" ; then
922         AC_MSG_CHECKING([If pcblib-newlib was built with png previews])
923         stamp=$srcdir/lib/pcblib-newlib.stamp
924         if test ! -f ${stamp} ; then
925                 AC_MSG_RESULT([unknown, missing ${stamp}])
926                 build_pcblib_newlib=yes
927         else
928                 if test "`cat ${stamp}`" = "png-preview=yes" ; then
929                         AC_MSG_RESULT([yes])
930                         # lib exists and built with preview.
931                         # if we don't want the preview, than rebuild
932                         if test x$enable_m4lib_png != xyes ; then
933                                 build_pcblib_newlib=yes
934                         fi
935                 else
936                         AC_MSG_RESULT([no])
937                         # lib exists and built without preview.
938                         # if we want the preview, than rebuild
939                         if test x$enable_m4lib_png = xyes ; then
940                                 build_pcblib_newlib=yes
941                         fi
942                 fi
943         fi
944 else
945         build_pcblib_newlib=yes
947 AC_MSG_CHECKING([If pcblib-newlib needs to be rebuilt])
948 AC_MSG_RESULT([$build_pcblib_newlib])
949 AM_CONDITIONAL(BUILD_PCBLIB_NEWLIB, test x$build_pcblib_newlib = xyes)
951 if test "X$cross_compiling" = "Xyes" ; then
952         # we are cross compiling so we will need a build host binary for pcb
953         AC_PATH_PROG(PCB, [pcb], [notfound])
954 else
955         PCB="\${top_builddir}/src/pcb"
957 AC_SUBST(PCB)
959 # now make see how essential it was that we have a pcb executable for the build
960 # host
961 if test "X$pcb_git_version" = "Xyes" ; then
962         if test "X$docs_yesno" = "Xyes" -o "X$enable_m4lib_png" = "Xyes" ; then
963                 if test "$PCB" = "notfound" ; then
964                         AC_MSG_ERROR([You have selected a build with m4lib png
965 previews enabled and/or with building the documentation enabled but you also
966 appear to be cross-compiling.  For this to work, you must have a pcb installed that
967 can run on this machine (the build machine) because it is needed for generating
968 library footprint png previews as well as some of the figures in the documentation.
969 If you wish to skip building the documentation and the footprint previews then add
970 --disable-doc --disable-m4lib-png
971 This will allow your cross build to work.])
972                 fi
973         fi
976 # ------------- Xrender -------------------
977 have_xrender=no
978 AC_CHECK_LIB(Xrender,XRenderQueryExtension,have_xrender=yes,have_xrender=no,$X_LIBS)
980 AC_ARG_ENABLE([xrender],
981 [  --disable-xrender       Compile and link with Xrender [default=yes]])
982 case "$have_xrender:$enable_xrender" in
983    no:* ) ;;
984    *:no ) ;;
985    * )
986      X_LIBS="-lXrender $X_LIBS"
987      AC_DEFINE([HAVE_XRENDER], 1,
988                 [Define to 1 if Xrender is available])
989      ;;
990 esac
992 # ------------- Xinerama -------------------
993 have_xinerama=no
994 AC_CHECK_LIB(Xinerama,XineramaQueryExtension,have_xinerama=yes,have_xinerama=no,$X_LIBS)
996 AC_ARG_ENABLE([xinerama],
997 [  --disable-xinerama       Compile and link with Xinerama [default=yes]])
998 case "$have_xinerama:$enable_xinerama" in
999    no:* ) ;;
1000    *:no ) ;;
1001    * )
1002      X_LIBS="-lXinerama $X_LIBS"
1003      AC_DEFINE([HAVE_XINERAMA], 1,
1004                 [Define to 1 if Xinerama is available])
1005      ;;
1006 esac
1008 # ------------- dmalloc -------------------
1009 dnl dmalloc checks
1010 with_dmalloc=no
1011 AC_MSG_CHECKING([if dmalloc debugging should be enabled])
1012 AC_ARG_ENABLE([dmalloc],
1013 [  --enable-dmalloc        Compile and link with dmalloc for malloc debugging [default=no]],
1015 if test "X$enable_dmalloc" != "Xno" ; then
1016         AC_MSG_RESULT([yes])
1017         AC_CHECK_HEADER(dmalloc.h,,
1018                 AC_MSG_ERROR([You have requested dmalloc debugging but dmalloc.h could not be found]))
1019         AC_CHECK_LIB(dmalloc,main,,
1020                 AC_MSG_ERROR([You have requested dmalloc debugging but -ldmalloc could not be found]))
1021         DMALLOC_LIBS="-ldmalloc"
1022         with_dmalloc=yes
1023 else
1024         AC_MSG_RESULT([no])
1025         DMALLOC_LIBS=""
1029         AC_MSG_RESULT([no])
1030         DMALLOC_LIBS=""
1033 # ------------- ElectricFence -------------------
1034 dnl ElectricFence checks
1035 with_efence=no
1036 AC_MSG_CHECKING([if ElectricFence debugging should be enabled])
1037 AC_ARG_ENABLE([efence],
1038 [  --enable-efence         Link with ElectricFence for malloc debugging [default=no]],
1040 if test "X$enable_efence" != "Xno" ; then
1041         AC_MSG_RESULT([yes])
1042         AC_CHECK_LIB(efence,main,,
1043                 AC_MSG_ERROR([You have requested ElectricFence debugging but -lefence could not be found]))
1044         with_efence=yes
1045 else
1046         AC_MSG_RESULT([no])
1050 AC_MSG_RESULT([no])
1053 # ------------- Enable Debug code -------------------
1054 AC_MSG_CHECKING([for whether to enable debugging code])
1055 AC_ARG_ENABLE([debug],
1056 [  --enable-debug          Enable debugging code],
1057 [],[enable_debug=no])
1059 AC_MSG_RESULT([$enable_debug])
1060 AM_CONDITIONAL(DEBUG_BUILD, test x$enable_debug = xyes)
1062 # ------------- mkdir required for win32 compatibility ------------
1063 # WIN32 mkdir takes only one argument, POSIX takes two.
1064 # #include "misc.h" where mkdir is required.
1065 m4_include([m4/m4_ax_func_mkdir.m4])
1066 AX_FUNC_MKDIR
1068 # ------------- Type used for "Coord" type -------------------
1070 AC_CHECK_HEADERS(stdint.h)
1071 AC_ARG_ENABLE([coord64],
1072 [  --enable-coord64        Force 64-bit coordinate types],
1073 [],[enable_coord64=no])
1074 AC_ARG_ENABLE([coord32],
1075 [  --enable-coord32        Force 32-bit coordinate types],
1076 [],[enable_coord32=no])
1078 COORDTYPE="long"
1080 echo "$enable_coord32:$enable_coord64:$ac_cv_header_stdint_h"
1081 case "$enable_coord32:$enable_coord64:$ac_cv_header_stdint_h" in
1082   yes:no:yes )
1083     COORD_TYPE="int32_t"
1084     COORD_MAX="INT32_MAX"
1085     ;;
1086   no:yes:yes )
1087     COORD_TYPE="int64_t"
1088     COORD_MAX="INT64_MAX"
1089     ;;
1090   yes:no:no  )
1091     COORD_TYPE="int"
1092     COORD_MAX="INT_MAX"
1093     ;;
1094   no:yes:no  )
1095     COORD_TYPE="long long"
1096     COORD_MAX="LLONG_MAX"
1097     ;;
1098   yes:yes:*  )
1099     AC_MSG_ERROR("*** cannot require both 32 and 64 bit coordinates")
1100     ;;
1101   *:*:*    )
1102     COORD_TYPE="long"
1103     COORD_MAX="LONG_MAX"
1104     ;;
1105 esac
1106 AC_DEFINE_UNQUOTED([COORD_TYPE],[$COORD_TYPE],
1107   [C type for Coordinates])
1108 AC_DEFINE_UNQUOTED([COORD_MAX],[$COORD_MAX],
1109   [Maximum value of coordinate type])
1111 # ------------- Complete set of CFLAGS and LIBS -------------------
1113 CFLAGS="$CFLAGS $X_CFLAGS $DBUS_CFLAGS $GLIB_CFLAGS $GTK_CFLAGS $CAIRO_CFLAGS $GTKGLEXT_CFLAGS $GLU_CFLAGS $GL_CFLAGS"
1114 LIBS="$LIBS $XM_LIBS $DBUS_LIBS $X_LIBS $GLIB_LIBS $GTK_LIBS $DMALLOC_LIBS $GD_LIBS $INTLLIBS $CAIRO_LIBS $GTKGLEXT_LIBS $GLU_LIBS $GL_LIBS"
1117 # if we have gcc then add -Wall
1118 if test "x$GCC" = "xyes"; then
1119         # see about adding some extra checks if the compiler takes them
1120         for flag in -Wall ; do
1121                 case " ${CFLAGS} " in
1122                         *\ ${flag}\ *)
1123                                 # flag is already present
1124                                 ;;
1125                         *)
1126                                 AC_MSG_CHECKING([if the compiler accepts ${flag}])
1127                                 ac_save_CFLAGS="$CFLAGS"
1128                                 CFLAGS="$CFLAGS ${flag}"
1129                                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
1130                                         [AC_MSG_RESULT([yes])],
1131                                         [AC_MSG_RESULT([no])
1132                                          CFLAGS="$ac_save_CFLAGS"
1133                                         ]
1134                                 )
1135                                 ;;
1136                 esac
1137         done
1140 CXXFLAGS="$CFLAGS"
1142 # Now add C-specific flags
1143 if test "x$GCC" = "xyes"; then
1144         # see about adding some extra checks if the compiler takes them
1145         for flag in -Wdeclaration-after-statement ; do
1146                 case " ${CFLAGS} " in
1147                         *\ ${flag}\ *)
1148                                 # flag is already present
1149                                 ;;
1150                         *)
1151                                 AC_MSG_CHECKING([if the compiler accepts ${flag}])
1152                                 ac_save_CFLAGS="$CFLAGS"
1153                                 CFLAGS="$CFLAGS ${flag}"
1154                                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
1155                                         [AC_MSG_RESULT([yes])],
1156                                         [AC_MSG_RESULT([no])
1157                                          CFLAGS="$ac_save_CFLAGS"
1158                                         ]
1159                                 )
1160                                 ;;
1161                 esac
1162         done
1165 # See if we are building gcc with C++.
1166 AC_ARG_ENABLE(build-with-cxx,
1167 [  --enable-build-with-cxx build with C++ compiler instead of C compiler],
1168 ENABLE_BUILD_WITH_CXX=$enableval,
1169 ENABLE_BUILD_WITH_CXX=no)
1171 case "$ENABLE_BUILD_WITH_CXX" in
1172   yes)
1173     CC_OR_CXX="$CXX"
1174     CC_OR_CXX_FLAGS="$CXXFLAGS"
1175     ;;
1176   no)
1177     CC_OR_CXX="$CC"
1178     CC_OR_CXX_FLAGS="$CFLAGS"
1179     ;;
1180 esac
1181 AC_SUBST(CC_OR_CXX)
1182 AC_SUBST(CC_OR_CXX_FLAGS)
1184 # font filename
1185 FONTFILENAME=${FONTFILENAME:-"default_font"}
1186 AC_SUBST(FONTFILENAME)
1187 AC_DEFINE_UNQUOTED(FONTFILENAME,"$FONTFILENAME",[File for default font])
1189 # standard autoconf variables
1190 CPPFLAGS="$CPPFLAGS -DPREFIXDIR=\\\"\${prefix}\\\""
1191 CPPFLAGS="$CPPFLAGS -DBINDIR=\\\"\${bindir}\\\""
1192 CPPFLAGS="$CPPFLAGS -DHOST=\\\"\${host}\\\""
1194 # directory for old-style library and for fonts
1195 PCBLIBDIR=${datadir}/pcb
1196 AC_SUBST(PCBLIBDIR)
1197 #AC_DEFINE_UNQUOTED(PCBLIBDIR,"$PCBLIBDIR",[Library directory])
1198 CPPFLAGS="$CPPFLAGS -DPCBLIBDIR=\\\"$PCBLIBDIR\\\""
1200 # name for old-style library
1201 LIBRARYFILENAME=pcblib
1202 AC_SUBST(LIBRARYFILENAME)
1203 AC_DEFINE_UNQUOTED(LIBRARYFILENAME,"$LIBRARYFILENAME",[library file name])
1206 # directory for new library
1207 PCBTREEDIR=${datadir}/pcb/newlib
1208 PCBTREEPATH=${PCBTREEDIR}:${PCBLIBDIR}/pcblib-newlib
1209 PCBTREEDIR=${PCBTREEDIR:-"$PCBTREEDIR"}
1210 AC_SUBST(PCBTREEDIR)
1211 AC_SUBST(PCBTREEPATH)
1212 #AC_DEFINE_UNQUOTED(PCBTREEDIR,"$PCBLIB",[top directory for new style pcb library])
1213 CPPFLAGS="$CPPFLAGS -DPCBTREEDIR=\\\"$PCBTREEDIR\\\""
1214 CPPFLAGS="$CPPFLAGS -DPCBTREEPATH=\\\"$PCBTREEPATH\\\""
1216 # Figure out relative paths
1217 AC_MSG_CHECKING([for the bindir to pcblibdir relative path])
1218 adl_COMPUTE_RELATIVE_PATHS([bindir:PCBLIBDIR:bindir_to_pcblibdir])
1219 adl_NORMALIZE_PATH([bindir_to_pcblibdir], [$PCB_DIR_SEPARATOR_S])
1220 AC_MSG_RESULT([$bindir_to_pcblibdir])
1221 AC_DEFINE_UNQUOTED(BINDIR_TO_PCBLIBDIR, "$bindir_to_pcblibdir", [Relative path from bindir to pcblibdir])
1223 AC_MSG_CHECKING([for the bindir to pcbtreedir relative path])
1224 adl_COMPUTE_RELATIVE_PATHS([bindir:PCBTREEDIR:bindir_to_pcbtreedir])
1225 adl_NORMALIZE_PATH([bindir_to_pcbtreedir], [$PCB_DIR_SEPARATOR_S])
1226 AC_MSG_RESULT([$bindir_to_pcbtreedir])
1227 AC_DEFINE_UNQUOTED(BINDIR_TO_PCBTREEDIR, "$bindir_to_pcbtreedir", [Relative path from bindir to pcbtreedir])
1230 AC_MSG_CHECKING([for the bindir to exec_prefix relative path])
1231 adl_COMPUTE_RELATIVE_PATHS([bindir:exec_prefix:bindir_to_execprefix])
1232 adl_NORMALIZE_PATH([bindir_to_execprefix], [$PCB_DIR_SEPARATOR_S])
1233 AC_MSG_RESULT([$bindir_to_execprefix])
1234 AC_DEFINE_UNQUOTED(BINDIR_TO_EXECPREFIX, "$bindir_to_execprefix", [Relative path from bindir to exec_prefix])
1237 BTNMOD=${BTNMOD:-"Mod1"}
1238 AC_SUBST(BTNMOD)
1240 TOPDIRS=
1241 for dir in src lib newlib doc example tools tutorial README_FILES
1243    test -d $dir/. && TOPDIRS="$TOPDIRS $dir"
1244 done
1245 AC_SUBST(TOPDIRS)
1247 AC_CONFIG_FILES(Makefile data/Makefile intl/Makefile po/Makefile.in)
1249 if test -d $srcdir/README_FILES; then
1250    AC_CONFIG_FILES(README_FILES/Makefile)
1252 if test -d $srcdir/doc; then
1253    AC_CONFIG_FILES(doc/Makefile)
1255 if test -d $srcdir/doc/gs; then
1256    AC_CONFIG_FILES(doc/gs/Makefile)
1257    AC_CONFIG_FILES(doc/gs/gafrc)
1258    AC_CONFIG_FILES(doc/gs/gschemrc)
1260 if test -d $srcdir/example; then
1261    AC_CONFIG_FILES(example/Makefile)
1262    AC_CONFIG_FILES(example/libraries/Makefile)
1264 if test -d $srcdir/lib; then
1265    AC_CONFIG_FILES(lib/CreateLibraryContents.sh)
1266    AC_CONFIG_FILES(lib/CreateLibrary.sh)
1267    AC_CONFIG_FILES(lib/ListLibraryContents.sh)
1268    AC_CONFIG_FILES(lib/Makefile)
1269    AC_CONFIG_FILES(lib/QueryLibrary.sh)
1270    AC_CONFIG_FILES(lib/qfp-ui)
1272 if test -d $srcdir/newlib; then
1273    AC_CONFIG_FILES(newlib/2_pin_thru-hole_packages/Makefile)
1274    AC_CONFIG_FILES(newlib/Makefile)
1275    AC_CONFIG_FILES(newlib/connectors/Makefile)
1276    AC_CONFIG_FILES(newlib/crystal/Makefile)
1277    AC_CONFIG_FILES(newlib/electro-optics/Makefile)
1278    AC_CONFIG_FILES(newlib/headers/Makefile)
1279    AC_CONFIG_FILES(newlib/keystone/Makefile)
1280    AC_CONFIG_FILES(newlib/msp430/Makefile)
1281    AC_CONFIG_FILES(newlib/not_vetted_ingo/Makefile)
1282    AC_CONFIG_FILES(newlib/sockets/Makefile)
1283    AC_CONFIG_FILES(newlib/tests/Makefile)
1285 AC_CONFIG_FILES(src/Makefile)
1286 AC_CONFIG_FILES(src/icons/Makefile)
1287 if test -d $srcdir/tools; then
1288    AC_CONFIG_FILES(tools/Makefile)
1290 if test -d $srcdir/tutorial; then
1291    AC_CONFIG_FILES(tutorial/Makefile)
1294 dnl testsuite
1295 AC_CONFIG_FILES(tests/inputs/Makefile)
1296 AC_CONFIG_FILES(tests/golden/Makefile)
1297 AC_CONFIG_FILES(tests/golden/hid_bom1/Makefile)
1298 AC_CONFIG_FILES(tests/golden/hid_bom2/Makefile)
1299 AC_CONFIG_FILES(tests/golden/hid_bom3/Makefile)
1300 AC_CONFIG_FILES(tests/golden/hid_bom4/Makefile)
1301 AC_CONFIG_FILES(tests/golden/hid_gcode1/Makefile)
1302 AC_CONFIG_FILES(tests/golden/hid_gcode2/Makefile)
1303 AC_CONFIG_FILES(tests/golden/hid_gcode3/Makefile)
1304 AC_CONFIG_FILES(tests/golden/hid_gcode4/Makefile)
1305 AC_CONFIG_FILES(tests/golden/hid_gcode5/Makefile)
1306 AC_CONFIG_FILES(tests/golden/hid_gcode6/Makefile)
1307 AC_CONFIG_FILES(tests/golden/hid_gcode7/Makefile)
1308 AC_CONFIG_FILES(tests/golden/hid_gcode8/Makefile)
1309 AC_CONFIG_FILES(tests/golden/hid_gcode9/Makefile)
1310 AC_CONFIG_FILES(tests/golden/hid_gcode10/Makefile)
1311 AC_CONFIG_FILES(tests/golden/hid_gcode11/Makefile)
1312 AC_CONFIG_FILES(tests/golden/hid_gerber1/Makefile)
1313 AC_CONFIG_FILES(tests/golden/hid_gerber2/Makefile)
1314 AC_CONFIG_FILES(tests/golden/hid_gerber3/Makefile)
1315 AC_CONFIG_FILES(tests/golden/hid_png1/Makefile)
1316 AC_CONFIG_FILES(tests/golden/hid_png2/Makefile)
1317 AC_CONFIG_FILES(tests/golden/hid_png3/Makefile)
1318 AC_CONFIG_FILES(tests/Makefile)
1320 dnl GTS 0.7.6 - http://gts.sourceforge.net/
1321 AC_CONFIG_FILES(gts/Makefile)
1323 dnl win32 build scripts
1324 AC_CONFIG_FILES(w32/Makefile)
1326 AC_OUTPUT
1328 with_gui=`echo $with_gui`
1329 with_printer=`echo $with_printer`
1330 with_exporters=`echo $with_exporters | sed 's/,/ /g'`
1332 expandedXDGDATADIR=`eval "echo $XDGDATADIR"`
1333 expandedKDEDATADIR=`eval "echo $KDEDATADIR"`
1335 AC_MSG_RESULT([
1336 ** Configuration summary for $PACKAGE $VERSION:
1338    GUI:                      $with_gui
1339    Printer:                  $with_printer
1340    Exporters:                $with_exporters
1341    Coordinate type:          $COORD_TYPE
1342    Source tree distribution: $pcb_sources
1343    Build documentation:      $docs_yesno
1344    Build toporouter:         $enable_toporouter
1345    Enable toporouter output: $enable_toporouter_output
1346    xdg data directory:       $expandedXDGDATADIR
1347    KDE data directory:       $expandedKDEDATADIR
1348    dmalloc debugging:        $with_dmalloc
1349    ElectricFence debugging:  $with_efence
1351    Cross Compiling:          $cross_compiling
1352    CC:                       $CC
1353    CXX:                      $CXX
1354    CPPFLAGS:                 $CPPFLAGS
1355    CFLAGS:                   $CFLAGS
1356    CXXFLAGS:                 $CXXFLAGS
1357    LIBS:                     $LIBS
1358    PCB:                      $PCB