Merge branch 'master' into work
[xcircuit.git] / Makefile.am
blobf29e863c0692615211e9a761faada7d887f13c74
1 ## Process this file with automake to produce Makefile.in
3 AUTOMAKE_OPTIONS = foreign no-dependencies no-dist
5 AM_CFLAGS = $(cairo_CFLAGS) $(fontconfig_CFLAGS) ${GS_CFLAGS}
6 LIBS += $(cairo_LIBS) $(fontconfig_LIBS) ${GS_LIBS}
8 # Additional files to distribute
9 EXTRA_DIST = COPYRIGHT README README.ISOLatin2 README.notes
11 SUBDIRS = @SUBDIRS@
12 VERSION = @VERSION@
13 REVISION = @REVISION@
14 FULL_VERSION = @VERSION@.@REVISION@
16 # Override standard "make" target when compiling under TCL
17 ALL_TARGET = @ALL_TARGET@
18 INSTALL_TARGET = @INSTALL_TARGET@
20 # Menudep program generates menudep.h needed by some of the
21 # source files for Xcircuit
22 noinst_PROGRAMS = menudep$(EXEEXT)
24 # Automake files
25 ac_aux_dir = dist
27 # Requirements for Xcircuit
28 bin_PROGRAMS = xcircuit
30 # Temporary directory (if not overridden by environment variable TMPDIR)
31 tmpdir = /tmp
33 # Directories for app-defaults file and manual page
34 appdefaultsdir = $(libdir)/$(PACKAGE)-$(VERSION)/app-defaults
35 appmandir = $(libdir)/$(PACKAGE)-$(VERSION)/man
37 PATHNAMES = -DPROG_VERSION=$(VERSION) \
38         -DPROG_REVISION=$(REVISION) \
39         -DCAD_DIR=\"$(libdir)\" \
40         -DTEMP_DIR=\"$(tmpdir)\" \
41         -DRESOURCES_DIR=\"$(appdefaultsdir)\" \
42         -DSCRIPTS_DIR=\"$(scriptsdir)\" \
43         -DBUILTINS_DIR=\"$(librarydir)\" \
44         -DBUILTINS_FILE=\"$(BUILTINS_FILE)\" \
45         -DUSER_RC_FILE=\"$(USER_RC_FILE)\" \
46         -DPROLOGUE_DIR=\"$(librarydir)\" \
47         -DPROLOGUE_FILE=\"$(PROLOGUE_FILE)\" \
48         -DCYRILLIC_ENC_FILE=\"$(CYRILLIC_ENC_FILE)\" \
49         -DISOLATIN2_ENC_FILE=\"$(ISOLATIN2_ENC_FILE)\" \
50         -DISOLATIN5_ENC_FILE=\"$(ISOLATIN5_ENC_FILE)\" \
51         -DSTARTUP_FILE=\"$(STARTUP_FILE)\" \
52         -DLGF_LIB=\"$(LGF_LIB)\" \
53         -DASG_SPICE_LIB=\"$(ASG_SPICE_LIB)\"
55 xcircuit_SOURCES = elements.c events.c filelist.c files.c \
56         flate.c fontfile.c formats.c functions.c graphic.c \
57         help.c keybindings.c libraries.c menucalls.c \
58         netlist.c ngspice.c parameter.c python.c \
59         rcfile.c render.c schema.c selection.c svg.c text.c undo.c \
60         tclxcircuit.c tkSimple.c xcircuit.c xtfuncs.c xtgui.c \
61         cairo.c utf8encodings.c
62 cairo.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
63 elements.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
64 events.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
65 fontfile.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
66 text.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
67 utf8encodings.$(OBJEXT) : CFLAGS += -pedantic -Wall -Wextra
69 xcircuit_DEPEND = @SUBLIB@
70 xcircuit_LDADD = @SUBLIB@ @STDLIBS@
72 help.c: menudep.h
73 menucalls.c: menudep.h
74 rcfile.c: menudep.h
75 schema.c: menudep.h
76 xcircuit.c: menudep.h
77 parameter.c: menudep.h
78 python.c: menudep.h
79 tclxcircuit.c: menudep.h
80 xtgui.c: menudep.h
81 xtfuncs.c: menudep.h
83 # Man page
84 M4_DEFS = @M4_DEFS@ @DEFS@
85 man_MANS = lib/xcircuit.1
87 # Main compiler arguments
88 DEFS = @DEFS@ $(PATHNAMES)
89 INCLUDES = -IXw ${INC_SPECS}
90 SHDLIB_EXT = @SHDLIB_EXT@
91 LDDL_FLAGS = @LDDL_FLAGS@
92 LDFLAGS = @LDFLAGS@
93 EXTRA_LIB_SPECS = @EXTRA_LIB_SPECS@
94 TCL_LIB_DIR = @TCL_LIB_DIR@
95 WISH_EXE = @WISH_EXE@
96 INTERPRETER = @INTERPRETER@
98 # Library directory and files
99 librarydir = $(libdir)/$(PACKAGE)-$(VERSION)
100 scriptsdir = $(libdir)/$(PACKAGE)-$(VERSION)
101 USER_RC_FILE = .xcircuitrc
102 PROLOGUE_FILE = xcircps2.pro
103 CYRILLIC_ENC_FILE = cyrillic.enc
104 ISOLATIN2_ENC_FILE = isolatin2.enc
105 ISOLATIN5_ENC_FILE = isolatin5.enc
106 ENCODING_FILES = ${CYRILLIC_ENC_FILE} ${ISOLATIN2_ENC_FILE} ${ISOLATIN5_ENC_FILE}
107 LGF_LIB = lgf.lps
108 ASG_SPICE_LIB = asg_spice.lps
109 SIGNAL_LIB = signal.lps
110 MUSIC_LIB = musiclib.lps
111 STARTUP_FILE = @STARTUP_FILE@
112 INTERP_PATH = @INTERP_PATH@
114 FONTS_LPS = courier courieriso2 courieriso5 helvetica helveticaiso2 \
115         helveticaiso5 myfont symbol times_roman times_romaniso2 \
116         times_romaniso5
117 FONTS_XFE = courier courieriso courieriso2 courieriso5 courier_cyrillic \
118         helvetica helveticaiso helveticaiso2 helveticaiso5 helvetica_cyrillic \
119         times_roman times_romaniso times_romaniso2 times_romaniso5 \
120         times_roman_cyrillic myfont symbol
121 SCRIPTS_PY = spice gettext pagebbox
123 WRAPPER_INIT = xcircuit.tcl
124 WRAPPER_OBJ = xcircuit${SHDLIB_EXT}
125 WRAPPER_SO = xcircuit.so
126 WRAPPER_SH = xcircuit.sh
127 CONSOLE = tkcon.tcl
128 CONSOLE_SCRIPT = console.tcl
130 menudep$(EXEEXT): menudep.o
131         $(CC) -o $@ menudep.o
133 menudep.h: menudep$(EXEEXT)
134         ./menudep$(EXEEXT)
136 xcwrap.o: xcwrap.c menudep.h
137         $(CC) ${CPPFLAGS} ${CFLAGS} ${DEFS} \
138                 $(PATHNAMES) $(INCLUDES) \
139                 xcwrap.c -c -o xcwrap.o
141 lib/$(INTERP_PATH)/$(WRAPPER_OBJ): xcwrap.o ${xcircuit_OBJECTS} ${xcircuit_DEPEND}
142         $(RM) lib/$(INTERP_PATH)/$(WRAPPER_OBJ)
143         $(SHLIB_LD) ${CFLAGS} -o $@ ${LDDL_FLAGS} xcwrap.o \
144                 ${xcircuit_OBJECTS} ${xcircuit_LDADD} ${SHLIB_LIB_SPECS} \
145                 ${LDFLAGS} ${X_EXTRA_LIBS} ${EXTRA_LIBS} -lc ${LIBS} \
146                 ${LIB_SPECS} ${EXTRA_LIB_SPECS}
148 xcircexec$(EXEEXT): xcircexec.o
149         $(RM) ./xcircexec$(EXEEXT)
150         $(CC) ${CFLAGS} ${CPPFLAGS} ${DEFS} $(PATHNAMES) $(INCLUDES) \
151                 xcircexec.c -o xcircexec$(EXEEXT) ${LIB_SPECS} \
152                 ${LD_RUN_PATH} ${LDFLAGS} ${LIBS} ${EXTRA_LIB_SPECS}
154 tcl:
155         @echo Making tcl library object
156         list='$(SUBDIRS)'; for subdir in $$list; do \
157            test "$$subdir" = . || (echo "Making tcl in $$subdir"; \
158            cd $$subdir && $(MAKE) $(AM_MAKEFLAGS)) \
159         done
160         $(MAKE) lib/$(INTERP_PATH)/$(WRAPPER_OBJ)
161         $(MAKE) lib/$(INTERP_PATH)/$(WRAPPER_SH)
162         $(MAKE) lib/$(INTERP_PATH)/$(WRAPPER_INIT)
163         $(MAKE) xcircexec$(EXEEXT)
165 lib/$(INTERP_PATH)/$(WRAPPER_SH): lib/$(INTERP_PATH)/$(WRAPPER_SH).in
166         sed -e '/XCLIBDIR/s#XCLIBDIR#$(librarydir)#' \
167                 -e '/WRAPPER_INIT/s/WRAPPER_INIT/$(WRAPPER_INIT)/' \
168                 -e '/CONSOLE_SCRIPT/s/CONSOLE_SCRIPT/$(CONSOLE_SCRIPT)/' \
169                 -e '/CONSOLE/s/CONSOLE/$(CONSOLE)/' \
170                 -e '/PROG_VERSION/s/PROG_VERSION/$(VERSION)/' \
171                 -e '/PROG_REVISION/s/PROG_REVISION/$(REVISION)/' \
172                 -e '/TCLLIBDIR/s#TCLLIBDIR#$(TCL_LIB_DIR)#' \
173                 -e '/WISH_EXE/s#WISH_EXE#$(WISH_EXE)#' \
174                 lib/$(INTERP_PATH)/$(WRAPPER_SH).in > $@
175         chmod 0755 $@
177 lib/$(INTERP_PATH)/$(WRAPPER_INIT): lib/$(INTERP_PATH)/$(WRAPPER_INIT).in
178         sed -e '/LIBDIR/s#LIBDIR#$(librarydir)#' \
179                 -e '/SCRIPTSDIR/s#SCRIPTSDIR#$(scriptsdir)#' \
180                 lib/$(INTERP_PATH)/$(WRAPPER_INIT).in > $@
181         chmod 0755 $@
183 lib/xcircuit.1: lib/xcircuit.1.in
184         sed -e '/LIBDIR/s#LIBDIR#$(libdir)#' \
185                 -e "/^${HAVE_LGF}/s/^${HAVE_LGF} //" \
186                 -e "/^${INTERPRETER}/s/^${INTERPRETER} //" \
187                 -e '/^PYTHON /d' \
188                 -e '/^TCL /d' \
189                 -e '/^LGF /d' \
190                 -e '/^NOINTERP /d' \
191                 lib/xcircuit.1.in > $@
193 install-data-local: lib/xcircuit.1
194         @echo "Installing app-defaults file"
195         $(mkinstalldirs) $(DESTDIR)$(appdefaultsdir)
196         $(mkinstalldirs) $(DESTDIR)$(appmandir)
197         $(INSTALL_DATA) lib/XCircuit.ad $(DESTDIR)$(appdefaultsdir)/XCircuit
198         $(INSTALL_DATA) lib/xcircuit.1 $(DESTDIR)$(appmandir)/xcircuit.1
199         @echo "Installing library and netlist files"
200         $(mkinstalldirs) $(DESTDIR)$(librarydir)
201         ( cd lib ; for i in $(PROLOGUE_FILE) $(ENCODING_FILES) *.lps *.cir; do \
202                 $(INSTALL_DATA) $$i $(DESTDIR)$(librarydir); \
203         done )
204         ( cd lib/$(INTERP_PATH) ; for i in $(STARTUP_FILE); do \
205                 $(INSTALL_DATA) $$i $(DESTDIR)$(librarydir); \
206         done )
207         @echo "Installing .lps font files"
208         $(mkinstalldirs) $(DESTDIR)$(librarydir)/fonts
209         for i in $(FONTS_LPS); do \
210                 $(INSTALL_DATA) lib/fonts/$$i.lps $(DESTDIR)$(librarydir)/fonts; \
211         done
212         @echo "Installing .xfe font files"
213         for i in $(FONTS_XFE); do \
214                 $(INSTALL_DATA) lib/fonts/$$i.xfe $(DESTDIR)$(librarydir)/fonts; \
215         done
216         @echo "Installing scripts (if option enabled)"
217         if test "$(PYTHON)" != ""; then \
218                 $(mkinstalldirs) $(DESTDIR)$(scriptsdir)/python; \
219                 for i in $(SCRIPTS_PY); do \
220                         $(INSTALL_DATA) lib/python/$$i.py \
221                                 $(DESTDIR)$(scriptsdir)/python; \
222                 done; \
223         fi
225 # Note that MacOS/Fink uses SHDLIB_EXT = .dylib but Tcl expects .so anyway.
226 # So we make a symbolic link if SHDLIB_EXT != .so
228 install-tcl: xcircexec$(EXEEXT) lib/$(INTERP_PATH)/$(WRAPPER_OBJ) lib/$(INTERP_PATH)/$(WRAPPER_SH) lib/$(INTERP_PATH)/$(WRAPPER_INIT)
229         @echo "Installing standard XCircuit library files"
230         $(MAKE) $(AM_MAKEFLAGS) install-data-local
231         @echo "Installing Tcl files"
232         $(mkinstalldirs) $(DESTDIR)$(librarydir)
233         $(mkinstalldirs) $(DESTDIR)$(scriptsdir)
234         ( cd lib/$(INTERP_PATH) ; for i in $(WRAPPER_OBJ) *.tcl ; do \
235                 $(INSTALL_DATA) $$i $(DESTDIR)$(scriptsdir); \
236                 done )
237         $(INSTALL_DATA) xcircexec$(EXEEXT) $(DESTDIR)$(librarydir)
238         chmod 0755 $(DESTDIR)$(librarydir)/$(CONSOLE)
239         chmod 0755 $(DESTDIR)$(librarydir)/$(CONSOLE_SCRIPT)
240         chmod 0755 $(DESTDIR)$(librarydir)/$(WRAPPER_OBJ)
241         chmod 0755 $(DESTDIR)$(librarydir)/xcircexec$(EXEEXT)
243         if test "${SHDLIB_EXT}" != ".so"; then \
244           ( cd $(DESTDIR)$(librarydir); \
245             $(RM) $(WRAPPER_SO) ; \
246             ln -s $(WRAPPER_OBJ) $(WRAPPER_SO) ) ; \
247         fi
249         @echo "Installing GIF images"
250         $(mkinstalldirs) $(DESTDIR)$(librarydir)/pixmaps
251         ( cd lib/pixmaps ; for i in `ls *.gif *.xbm *.ico` ; do \
252                 $(INSTALL_DATA) $$i $(DESTDIR)$(librarydir)/pixmaps; \
253         done )
254         @echo "Installing shell script as xcircuit executable"
255         $(mkinstalldirs) $(DESTDIR)$(bindir)
256         $(INSTALL_DATA) lib/$(INTERP_PATH)/$(WRAPPER_SH) $(DESTDIR)$(bindir)/xcircuit
257         chmod 0755 $(DESTDIR)$(bindir)/xcircuit
259 clean:
260         (cd ./Xw; $(RM) *.o *.a *.bak core)
261         (cd ./asg; $(MAKE) clean)
262         (cd ./spiceparser; $(MAKE) clean)
263         $(RM) lib/$(INTERP_PATH)/$(WRAPPER_OBJ) lib/$(INTERP_PATH)/$(WRAPPER_SH)
264         $(RM) lib/$(INTERP_PATH)/$(WRAPPER_INIT)
265         $(RM) xcircuit *.o *.bak lib/xcircuit.1 core xcircexec$(EXEEXT)
266         $(RM) menudep$(EXEEXT) menudep.h
267         $(RM) config.cache config.log
269 distclean:
270         (cd ./Xw; $(RM) *.o *.a *.bak Makefile core)
271         (cd ./asg; $(MAKE) clean ; $(RM) Makefile)
272         (cd ./spiceparser; $(MAKE) clean ; $(RM) Makefile)
273         $(RM) xcircuit *.o *.bak core
274         $(RM) lib/$(INTERP_PATH)/$(WRAPPER_OBJ) lib/$(INTERP_PATH)/$(WRAPPER_SH)
275         $(RM) menudep$(EXEEXT) menudep.h lib/xcircuit.1 xcircexec$(EXEEXT)
276         $(RM) Makefile config.cache config.log config.status
277         $(RM) xcircuit-$(FULL_VERSION) xcircuit.spec xcircuit-$(FULL_VERSION).tgz
279 dist:
280         $(RM) xcircuit.spec xcircuit-$(FULL_VERSION) xcircuit-$(FULL_VERSION).tgz
281         sed -e /%VERSION%/s/%VERSION%/$(FULL_VERSION)/ \
282             xcircuit.spec.in > xcircuit.spec
283         ln -nsf . xcircuit-$(FULL_VERSION)
284         tar zchvf xcircuit-$(FULL_VERSION).tgz --exclude CVS \
285             --exclude xcircuit-$(FULL_VERSION)/xcircuit-$(FULL_VERSION) \
286             --exclude xcircuit-$(FULL_VERSION)/xcircuit-$(FULL_VERSION).tgz \
287             xcircuit-$(FULL_VERSION)
289 quiteclean:
290         (cd ./Xw; $(RM) *.o *.a *.bak Makefile.in Makefile core)
291         (cd ./asg; $(MAKE) clean ; $(RM) Makefile.in Makefile)
292         (cd ./spiceparser; $(MAKE) clean ; $(RM) Makefile.in Makefile)
293         $(RM) xcircuit *.o *.bak core
294         $(RM) lib/$(INTERP_PATH)/$(WRAPPER_OBJ) lib/$(INTERP_PATH)/$(WRAPPER_SH)
295         $(RM) menudep$(EXEEXT) menudep.h lib/xcircuit.1 xcircexec$(EXEEXT)
296         $(RM) install-sh missing mkinstalldirs Makefile.in Makefile
297         $(RM) config.* aclocal.m4
299 $(ALL_TARGET):
300         $(MAKE) tcl
302 $(INSTALL_TARGET):
303         $(MAKE) install-tcl