(no commit message)
[geda-pcb/pcjc2.git] / src / Makefile.am
blob033dae87376e3140bed42ce9c2cd981f4ccbd4b6
1 ## -*- makefile -*-
3 SUBDIRS=        icons
5 CC = @CC_OR_CXX@
7 pcbtreedir=     @PCBTREEDIR@
8 pcblibdir=      @PCBLIBDIR@
10 AUTOMAKE_OPTIONS = subdir-objects
11 HIDLIST = @HIDLIST@
12 noinst_LIBRARIES = @HIDLIBS@
13 EXTRA_LIBRARIES = \
14         libgtk.a liblesstif.a libbatch.a \
15         liblpr.a libgerber.a libbom.a libpng.a libps.a libnelma.a \
16         libgcode.a
18 pcblib_DATA= \
19         default_font \
20         gpcb-menu.res \
21         pcb-menu.res
23 bin_PROGRAMS=   pcb
25 if DEBUG_BUILD
26 # don't disable assert()
27 else
28 AM_CFLAGS= -DNDEBUG
29 endif
31 PCB_SRCS = \
32         action.c \
33         action.h \
34         autoplace.c \
35         autoplace.h \
36         autoroute.c \
37         autoroute.h \
38         box.h \
39         buffer.c \
40         buffer.h \
41         change.c \
42         change.h \
43         clip.c \
44         clip.h \
45         command.c \
46         command.h \
47         compat.c \
48         compat.h \
49         const.h \
50         copy.c \
51         copy.h \
52         create.c \
53         create.h \
54         crosshair.c \
55         crosshair.h \
56         data.c \
57         data.h \
58         djopt.c \
59         djopt.h \
60         dolists.h \
61         draw.c \
62         draw.h \
63         drill.c \
64         drill.h \
65         edif.y \
66         edif_parse.h \
67         error.c \
68         error.h \
69         file.c \
70         file.h \
71         find.c \
72         find.h \
73         flags.c \
74         fontmode.c \
75         free_atexit.c \
76         free_atexit.h \
77         gettext.h \
78         global.h \
79         heap.c \
80         heap.h \
81         hid.h \
82         hid_draw.h \
83         insert.c \
84         insert.h \
85         intersect.c \
86         intersect.h \
87         line.c \
88         line.h \
89         lrealpath.c \
90         lrealpath.h \
91         macro.h \
92         main.c \
93         mirror.c \
94         mirror.h \
95         misc.c \
96         misc.h \
97         move.c \
98         move.h \
99         mtspace.c \
100         mtspace.h \
101         mymem.c \
102         mymem.h \
103         netlist.c \
104         parse_l.h \
105         parse_l.l \
106         parse_y.h \
107         parse_y.y \
108         pcb-printf.c \
109         pcb-printf.h \
110         polygon.c \
111         polygon.h \
112         polygon1.c \
113         polyarea.h \
114         puller.c \
115         print.c \
116         print.h \
117         rats.c \
118         rats.h \
119         remove.c \
120         remove.h \
121         report.c \
122         report.h \
123         res_parse.y \
124         res_lex.l \
125         resource.h \
126         rotate.c \
127         rotate.h \
128         rtree.c \
129         rtree.h \
130         rubberband.c \
131         rubberband.h \
132         search.c \
133         search.h \
134         select.c \
135         select.h \
136         set.c \
137         set.h \
138         strflags.c \
139         strflags.h \
140         thermal.c \
141         thermal.h \
142         undo.c \
143         undo.h \
144         vector.c \
145         vector.h \
146         vendor.c \
147         vendor.h \
148         hid/common/actions.c \
149         hid/common/actions.h \
150         hid/common/flags.c \
151         hid/common/hidinit.c \
152         hid/common/hidinit.h \
153         hid/common/hidnogui.c \
154         hid/common/hidnogui.h \
155         hid/common/extents.c \
156         hid/common/draw_helpers.c \
157         hid/common/draw_helpers.h \
158         hid/common/hid_resource.c \
159         hid/common/hid_resource.h \
160         hid/hidint.h 
162 EXTRA_pcb_SOURCES = ${DBUS_SRCS} ${GL_SRCS} toporouter.c toporouter.h
163 DBUS_SRCS= \
164         dbus-pcbmain.c \
165         dbus-pcbmain.h \
166         dbus.h \
167         dbus.c
169 LIBGTK_GDK_SRCS= \
170         hid/gtk/gtkhid-gdk.c
172 LIBGTK_GL_SRCS= \
173         hid/gtk/gtkhid-gl.c \
174         hid/gtk/gui-trackball.c \
175         hid/gtk/gui-trackball.h
177 GL_SRCS= \
178         hid/common/hidgl.c \
179         hid/common/hidgl.h \
180         hid/common/trackball.c \
181         hid/common/trackball.h
184 BUILT_SOURCES = \
185         core_lists.h \
186         gpcb-menu.h \
187         hid/gtk/gtk_lists.h \
188         hid/lesstif/lesstif_lists.h \
189         hid/batch/batch_lists.h \
190         hid/png/png_lists.h \
191         hid/gcode/gcode_lists.h \
192         hid/nelma/nelma_lists.h \
193         hid/ps/ps_lists.h \
194         parse_y.h \
195         pcb-menu.h \
196         res_parse.h \
197         hid/common/hidlist.h
199 pcb_LDADD = @HIDLIBS@
200 pcb_DEPENDENCIES = @HIDLIBS@
202 if WITH_TOPOROUTER
203 PCB_SRCS += toporouter.c toporouter.h
204 pcb_LDADD += ../gts/libgts.a
205 pcb_DEPENDENCIES += ../gts/libgts.a
206 endif
208 pcb_SOURCES = ${PCB_SRCS} core_lists.h
210 # Action, Attribute, and Flag lists.
211 core_lists.h : ${PCB_SRCS} Makefile
212         true > $@
213         (for f in ${PCB_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
214         mv $@.tmp $@
216 # for globalconst.h
217 INCLUDES=       -I$(top_srcdir) -I$(srcdir)/icons -I$(srcdir)/../gts
219 DEFS=   -DLOCALEDIR=\"$(localedir)\" @DEFS@
221 EXTRA_DIST= \
222         check_icon.data \
223         default_font \
224         $(srcdir)/hid/batch/hid.conf \
225         $(srcdir)/hid/bom/hid.conf \
226         $(srcdir)/hid/gcode/hid.conf \
227         $(srcdir)/hid/gerber/hid.conf \
228         $(srcdir)/hid/gtk/gui-icons-misc.data \
229         $(srcdir)/hid/gtk/gui-icons-mode-buttons.data \
230         $(srcdir)/hid/gtk/hid.conf \
231         $(srcdir)/hid/gtk/pcb.rc \
232         $(srcdir)/hid/lesstif/hid.conf \
233         $(srcdir)/hid/lpr/hid.conf \
234         $(srcdir)/hid/png/hid.conf \
235         $(srcdir)/hid/nelma/hid.conf \
236         $(srcdir)/hid/ps/hid.conf \
237         gpcb-menu.res.in \
238         pcb-menu.res.in \
239         gpcb-menu.res.h \
240         pcb-menu.res.h \
241         pcbtest.sh.in \
242         dbus.xml
244 AM_YFLAGS=      -d
246 all-local: pcbtest.sh
248 pcb-menu.res : pcb-menu.res.in
249         echo '/* AUTOMATICALLY GENERATED FROM pcb-menu.res.in DO NOT EDIT */' > $@
250         cat ${srcdir}/pcb-menu.res.in >> $@
252 pcb-menu.h : pcb-menu.res
253         echo '/* AUTOMATICALLY GENERATED FROM pcb-menu.res DO NOT EDIT */' > $@
254         echo 'const char *pcb_menu_default[] = {' >> $@
255         sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/",/' < pcb-menu.res >> $@
256         echo '0};' >> $@
258 gpcb-menu.res : gpcb-menu.res.in
259         echo '/* AUTOMATICALLY GENERATED FROM gpcb-menu.res.in DO NOT EDIT */' > $@
260         cat ${srcdir}/gpcb-menu.res.in >> $@
262 gpcb-menu.h : gpcb-menu.res
263         echo '/* AUTOMATICALLY GENERATED FROM gpcb-menu.res DO NOT EDIT */' > $@
264         echo 'const char *gpcb_menu_default[] = {' >> $@
265         sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/",/' < gpcb-menu.res >> $@
266         echo '0};' >> $@
268 # Menus i18n
269 %.res.h : %.res
270         $(INTLTOOL_EXTRACT) --type=gettext/quoted $^
272 hid/common/hidlist.h : Makefile
273         $(MKDIR_P) hid/common
274         true > $@
275         for e in ${HIDLIST}; do \
276           echo "HID_DEF($${e})" >> $@; \
277         done
279 libgtk_a_CPPFLAGS = -I./hid/gtk
280 LIBGTK_SRCS = \
281         dolists.h \
282         hid/hidint.h \
283         hid/gtk/ghid-cell-renderer-visibility.c \
284         hid/gtk/ghid-cell-renderer-visibility.h \
285         hid/gtk/ghid-coord-entry.c \
286         hid/gtk/ghid-coord-entry.h \
287         hid/gtk/ghid-layer-selector.c \
288         hid/gtk/ghid-layer-selector.h \
289         hid/gtk/ghid-main-menu.c \
290         hid/gtk/ghid-main-menu.h \
291         hid/gtk/ghid-route-style-selector.c \
292         hid/gtk/ghid-route-style-selector.h \
293         hid/gtk/gtkhid-main.c \
294         hid/gtk/gtkhid.h \
295         hid/gtk/gui.h \
296         hid/gtk/gui-command-window.c \
297         hid/gtk/gui-config.c \
298         hid/gtk/gui-dialog-print.c \
299         hid/gtk/gui-dialog.c \
300         hid/gtk/gui-drc-window.c \
301         hid/gtk/gui-drc-window.h \
302         hid/gtk/gui-keyref-window.c \
303         hid/gtk/gui-library-window.c \
304         hid/gtk/gui-library-window.h \
305         hid/gtk/gui-log-window.c \
306         hid/gtk/gui-misc.c \
307         hid/gtk/gui-netlist-window.c \
308         hid/gtk/gui-output-events.c \
309         hid/gtk/gui-pinout-preview.c \
310         hid/gtk/gui-pinout-preview.h \
311         hid/gtk/gui-pinout-window.c \
312         hid/gtk/gui-top-window.c \
313         hid/gtk/gui-utils.c
314 libgtk_a_SOURCES = ${LIBGTK_SRCS} hid/gtk/gtk_lists.h
316 hid/gtk/gtk_lists.h : ${LIBGTK_SRCS} Makefile
317         $(MKDIR_P) hid/gtk
318         true > $@
319         (for f in ${LIBGTK_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
320         mv $@.tmp $@
322 # If we are building with dbus support, we need some extra files
323 if WITH_DBUS
324 dbus-introspect.h : dbus.xml Makefile
325         echo '/* AUTOMATICALLY GENERATED FROM dbus.xml DO NOT EDIT */' > $@.tmp
326         echo "static char *pcb_dbus_introspect_xml ="  > $@.tmp
327         sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/"/' < $(srcdir)/dbus.xml >> $@.tmp
328         echo ";" >> $@.tmp
329         mv $@.tmp $@
331 PCB_SRCS+=      ${DBUS_SRCS}
332 BUILT_SOURCES+= dbus-introspect.h
334 endif
336 # If we are building with GL support, we need some extra files
337 if USE_GL
338 PCB_SRCS+=      ${GL_SRCS}
339 LIBGTK_SRCS+=   ${LIBGTK_GL_SRCS}
340 else
341 LIBGTK_SRCS+=   ${LIBGTK_GDK_SRCS}
342 endif
344 # If we are building on win32, then compile in some icons for the
345 # desktop and application toolbar
346 if WIN32
347 pcb_icon.o : pcb_icon.ico $(srcdir)/hid/gtk/pcb.rc
348         $(WINDRES) $(srcdir)/hid/gtk/pcb.rc $@
350 pcb_icon.ico: $(top_srcdir)/data/pcb_icon.ico
351         cp $(top_srcdir)/data/pcb_icon.ico $@
353 pcb_LDADD+=                     pcb_icon.o
354 pcb_DEPENDENCIES+=      pcb_icon.o
356 endif
359 liblesstif_a_CPPFLAGS = -I./hid/lesstif
360 LIBLESSTIF_SRCS = \
361         dolists.h \
362         hid/hidint.h \
363         hid/lesstif/dialogs.c \
364         hid/lesstif/lesstif.h \
365         hid/lesstif/library.c \
366         hid/lesstif/main.c \
367         hid/lesstif/menu.c \
368         hid/lesstif/netlist.c \
369         hid/lesstif/styles.c \
370         hid/lesstif/xincludes.h 
371 liblesstif_a_SOURCES = ${LIBLESSTIF_SRCS} hid/lesstif/lesstif_lists.h
373 hid/lesstif/lesstif_lists.h : ${LIBLESSTIF_SRCS} Makefile
374         $(MKDIR_P) hid/lesstif
375         true > $@
376         (for f in ${LIBLESSTIF_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
377         mv $@.tmp $@
379 libbatch_a_CPPFLAGS = -I./hid/batch
380 LIBBATCH_SRCS = \
381         hid/hidint.h \
382         hid/batch/batch.c 
383 libbatch_a_SOURCES = ${LIBBATCH_SRCS} hid/batch/batch_lists.h
385 hid/batch/batch_lists.h : ${LIBBATCH_SRCS} Makefile
386         $(MKDIR_P) hid/batch
387         true > $@
388         (for f in ${LIBBATCH_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
389         mv $@.tmp $@
391 libgerber_a_SOURCES = \
392         hid/hidint.h \
393         hid/gerber/gerber.c
395 libbom_a_SOURCES = \
396         hid/hidint.h \
397         hid/bom/bom.c
399 libps_a_CPPFLAGS = -I./hid/ps
400 LIBPS_SRCS = \
401         dolists.h \
402         hid/hidint.h \
403         hid/ps/ps.c \
404         hid/ps/ps.h \
405         hid/ps/eps.c 
406 libps_a_SOURCES = ${LIBPS_SRCS} hid/ps/ps_lists.h
408 hid/ps/ps_lists.h : ${LIBPS_SRCS} Makefile
409         $(MKDIR_P) hid/ps
410         true > $@
411         (for f in ${LIBPS_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
412         mv $@.tmp $@
414 libpng_a_CPPFLAGS = -I./hid/png
415 LIBPNG_SRCS = \
416         dolists.h \
417         hid/hidint.h \
418         hid/png/png.c \
419         hid/png/png.h 
420 libpng_a_SOURCES = ${LIBPNG_SRCS} hid/png/png_lists.h
422 hid/png/png_lists.h : ${LIBPNG_SRCS} Makefile
423         $(MKDIR_P) hid/png
424         true > $@
425         (for f in ${LIBPNG_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
426         mv $@.tmp $@
428 libgcode_a_CPPFLAGS = -I./hid/gcode
429 LIBGCODE_SRCS = \
430         dolists.h \
431         hid/hidint.h \
432         hid/gcode/gcode.c \
433         hid/gcode/decompose.c \
434         hid/gcode/decompose.h \
435         hid/gcode/trace.c \
436         hid/gcode/trace.h \
437         hid/gcode/curve.c \
438         hid/gcode/curve.h \
439         hid/gcode/auxiliary.h \
440         hid/gcode/bitmap.h \
441         hid/gcode/lists.h \
442         hid/gcode/potracelib.h 
443 libgcode_a_SOURCES = ${LIBGCODE_SRCS} hid/gcode/gcode_lists.h
445 hid/gcode/gcode_lists.h : ${LIBGCODE_SRCS} Makefile
446         $(MKDIR_P) hid/gcode
447         true > $@
448         (for f in ${LIBGCODE_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
449         mv $@.tmp $@
451 libnelma_a_CPPFLAGS = -I./hid/nelma
452 LIBNELMA_SRCS = \
453         dolists.h \
454         hid/hidint.h \
455         hid/nelma/nelma.c
456 libnelma_a_SOURCES = ${LIBNELMA_SRCS} hid/nelma/nelma_lists.h
458 hid/nelma/nelma_lists.h : ${LIBNELMA_SRCS} Makefile
459         $(MKDIR_P) hid/nelma
460         true > $@
461         (for f in ${LIBNELMA_SRCS} ; do cat $(srcdir)/$$f ; done) | grep "^REGISTER" > $@.tmp
462         mv $@.tmp $@
464 liblpr_a_SOURCES = \
465         hid/hidint.h \
466         hid/lpr/lpr.c
468 DISTCLEANFILES= pcbtest.sh gpcb-menu.h pcb-menu.h \
469         hid/batch/batch_lists.h \
470         hid/common/hidlist.h \
471         hid/gtk/gtk_lists.h \
472         hid/lesstif/lesstif_lists.h \
473         hid/png/png_lists.h \
474         hid/gcode/gcode_lists.h \
475         hid/nelma/nelma_lists.h \
476         hid/ps/ps_lists.h \
477         core_lists.h \
478         dbus-introspect.h \
479         gpcb-menu.res \
480         pcb-menu.res \
481         gpcb-menu.res.h \
482         pcb-menu.res.h
484 # create wrapper script that lets you test pcb prior to installation
485 pcbtest.sh:     $(srcdir)/pcbtest.sh.in Makefile
486         sed -e 's;@BUILDDIR@;${abs_builddir};g' -e 's;@TOP_BUILDDIR@;${abs_top_builddir};g' \
487                 -e 's;@TOPSRCDIR@;${abs_top_srcdir};g' \
488                 $(srcdir)/pcbtest.sh.in > $@
489         chmod 755 $@