2 ###############################################################################
3 # MODULE : main TeXmacs make file
4 # COPYRIGHT : (C) 1999-2008 Joris van der Hoeven
5 ###############################################################################
6 # This software falls under the GNU general public license version 3 or later.
7 # It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
8 # in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
9 ###############################################################################
12 exec_prefix = @
exec_prefix@
13 includedir = @
includedir@
16 datarootdir
= @datarootdir@
34 CHMOD
= @CONFIG_CHMOD@
36 STRIP
= @CONFIG_STRIP@
39 ###############################################################################
41 ###############################################################################
44 cd src
; $(MAKE
) -f makefile link
=shared
45 $(MAKE
) -f Makefile PLUGINS
46 $(MAKE
) -f Makefile EX_PLUGINS
47 $(CP
) misc
/scripts
/fig2ps
$(tmdir
)/bin
48 $(CP
) misc
/scripts
/texmacs
$(tmdir
)/bin
49 $(CP
) misc
/scripts
/tm_gs
$(tmdir
)/bin
50 $(CHMOD
) 755 $(tmdir
)/bin
/*
51 $(CHMOD
) 755 plugins
/*/bin
/*
52 $(RM
) -r
$(tmdir
)/plugins
53 $(CP
) plugins
$(tmdir
)/plugins
54 @echo
----------------------------------------------------
55 @echo dynamic TeXmacs has been successfully compiled
57 STATIC_TEXMACS
: EMPTY_DIRS
58 cd src
; $(MAKE
) -f makefile link
=static
59 $(MAKE
) -f Makefile PLUGINS
60 $(MAKE
) -f Makefile EX_PLUGINS
61 $(CP
) misc
/scripts
/fig2ps
$(tmdir
)/bin
62 $(CP
) misc
/scripts
/texmacs
$(tmdir
)/bin
63 $(CP
) misc
/scripts
/tm_gs
$(tmdir
)/bin
64 $(CHMOD
) 755 $(tmdir
)/bin
/*
65 $(CHMOD
) 755 plugins
/*/bin
/*
66 $(RM
) -r
$(tmdir
)/plugins
67 $(CP
) plugins
$(tmdir
)/plugins
68 @echo
----------------------------------------------------
69 @echo static TeXmacs has been successfully compiled
72 cd src
; $(MAKE
) -f makefile deps
80 .PHONY
: TEXMACS STATIC_TEXMACS DEPS EXPERIMENTAL
88 .PHONY
: deps
install uninstall clean distclean
90 ###############################################################################
92 ###############################################################################
94 PLUGINS_ALL
:= $(wildcard plugins
/*)
95 PLUGINS_MAKEFILE
:= $(wildcard plugins
/*/Makefile
)
96 PLUGINS_COMPILE
:= $(patsubst %Makefile
,%COMPILE
,$(PLUGINS_MAKEFILE
))
97 PLUGINS_CLEAN
:= $(patsubst %Makefile
,%CLEAN
,$(PLUGINS_MAKEFILE
))
100 $(MKDIR
) plugins
/$*/bin
101 cd plugins
/$*; $(MAKE
) -i
-f Makefile CC
="@CC@" CXX
="@CXX@"
104 cd plugins
/$*; $(MAKE
) -i
-f Makefile
clean
106 PLUGINS
: $(PLUGINS_COMPILE
)
108 CLEAN_PLUGINS
: $(PLUGINS_CLEAN
)
110 .PHONY
: PLUGINS CLEAN_PLUGINS
112 EX_PLUGINS_PRG
:= $(wildcard TeXmacs
/examples
/plugins
/*/progs
)
113 EX_PLUGINS_BIN
:= $(patsubst %/progs
,%/bin
,$(EX_PLUGINS_PRG
))
115 TeXmacs
/examples
/plugins
/%/bin
:
116 $(MKDIR
) TeXmacs
/examples
/plugins
/$*/bin
118 EX_PLUGINS
: $(EX_PLUGINS_BIN
)
119 $(MKDIR
) TeXmacs
/examples
/plugins
/dynlink
/lib
123 ###############################################################################
124 # Installing and removing TeXmacs (for system administrators)
125 ###############################################################################
128 $(MKDIR
) $(DESTDIR
)$(tmbin
)
129 $(MKDIR
) $(DESTDIR
)$(tmbin
)/bin
130 $(MKDIR
) $(DESTDIR
)$(tmbin
)/lib
131 $(CP
) $(tmdir
)/bin
/texmacs.bin
$(DESTDIR
)$(tmbin
)/bin
132 $(CP
) $(tmdir
)/bin
/tm_gs
$(DESTDIR
)$(tmbin
)/bin
133 $(CP
) $(tmdir
)/plugins
/*/bin
/* $(DESTDIR
)$(tmbin
)/bin
134 $(CP
) $(tmdir
)/plugins
/*/lib
/*.
$(so
) $(DESTDIR
)$(tmbin
)/lib
2>/dev
/null ||
:
135 $(STRIP
) $(DESTDIR
)$(tmbin
)/bin
/texmacs.bin
136 $(CP
) $(tmdir
)/lib
/*.
$(so
) $(DESTDIR
)$(tmbin
)/lib
2>/dev
/null ||
:
137 $(STRIP
) $(DESTDIR
)$(tmbin
)/lib
/*.
$(so
) 2>/dev
/null ||
:
138 $(CHMOD
) 755 $(DESTDIR
)$(tmbin
)/bin
/*
139 $(CHMOD
) 755 $(DESTDIR
)$(tmbin
)/lib
/*.
$(so
) 2>/dev
/null ||
:
140 $(RM
) $(DESTDIR
)$(tmbin
)/lib
/*.a
141 @echo installed TeXmacs executables in
$(DESTDIR
)$(tmbin
)
142 $(MKDIR
) $(DESTDIR
)$(tmdata
)
143 $(CP
) $(tmdir
)/LICENSE
$(DESTDIR
)$(tmdata
)
144 $(CP
) $(tmdir
)/doc
$(DESTDIR
)$(tmdata
)
145 $(CP
) $(tmdir
)/examples
$(DESTDIR
)$(tmdata
)
146 $(CP
) $(tmdir
)/fonts
$(DESTDIR
)$(tmdata
)
147 $(CP
) $(tmdir
)/langs
$(DESTDIR
)$(tmdata
)
148 $(CP
) $(tmdir
)/misc
$(DESTDIR
)$(tmdata
)
149 $(CP
) $(tmdir
)/packages
$(DESTDIR
)$(tmdata
)
150 $(CP
) $(tmdir
)/progs
$(DESTDIR
)$(tmdata
)
151 $(CP
) $(tmdir
)/styles
$(DESTDIR
)$(tmdata
)
152 $(CP
) $(tmdir
)/texts
$(DESTDIR
)$(tmdata
)
153 $(CHMOD
) -R go
=rX
$(DESTDIR
)$(tmdata
)
154 @echo installed TeXmacs data in
$(DESTDIR
)$(tmdata
)
155 $(CP
) plugins
$(DESTDIR
)$(tmdata
)
156 $(RM
) $(DESTDIR
)$(tmdata
)/plugins
/*/Makefile
157 $(RM
) -r
$(DESTDIR
)$(tmdata
)/plugins
/*/src
158 $(RM
) -r
$(DESTDIR
)$(tmdata
)/plugins
/*/bin
159 $(RM
) -r
$(DESTDIR
)$(tmdata
)/plugins
/*/lib
160 @echo installed TeXmacs plugins data in
$(DESTDIR
)$(tmdata
)/plugins
161 $(MKDIR
) $(DESTDIR
)$(bindir)
162 $(CHMOD
) 755 $(tmdir
)/bin
/*
163 $(CP
) $(tmdir
)/bin
/fig2ps
$(DESTDIR
)$(bindir)
164 $(CP
) $(tmdir
)/bin
/texmacs
$(DESTDIR
)$(bindir)
165 @echo installed TeXmacs startup scripts in
$(DESTDIR
)$(bindir)
166 $(MKDIR
) $(DESTDIR
)$(includedir)
167 $(CP
) $(tmdir
)/include/TeXmacs.h
$(DESTDIR
)$(includedir)
168 $(CHMOD
) go
=rX
$(DESTDIR
)$(includedir)/TeXmacs.h
169 @echo installed TeXmacs
include files in
$(DESTDIR
)$(includedir)
170 $(MKDIR
) $(DESTDIR
)$(mandir)
171 $(MKDIR
) $(DESTDIR
)$(mandir)/man1
172 $(CP
) misc
/man
/fig2ps
.1 $(DESTDIR
)$(mandir)/man1
173 $(CP
) misc
/man
/texmacs
.1 $(DESTDIR
)$(mandir)/man1
174 $(GZIP
) $(DESTDIR
)$(mandir)/man1
/fig2ps
.1
175 $(GZIP
) $(DESTDIR
)$(mandir)/man1
/texmacs
.1
176 $(CHMOD
) go
=rX
$(DESTDIR
)$(mandir)/man1
/fig2ps
.1.gz
177 $(CHMOD
) go
=rX
$(DESTDIR
)$(mandir)/man1
/texmacs
.1.gz
178 @echo installed TeXmacs manual pages in
$(DESTDIR
)$(mandir)
179 @echo
----------------------------------------------------
180 @echo TeXmacs has been successfully installed
184 @echo removed TeXmacs executables from
$(tmbin
)
186 @echo removed TeXmacs data from
$(tmdata
)
187 $(RM
) $(includedir)/TeXmacs.h
188 @echo removed TeXmacs
include files from
$(includedir)
189 $(RM
) $(bindir)/fig2ps
190 $(RM
) $(bindir)/texmacs
191 @echo removed TeXmacs startup scripts from
$(bindir)
192 $(RM
) $(mandir)/man1
/fig2ps
.1.gz
193 $(RM
) $(mandir)/man1
/texmacs
.1.gz
194 @echo removed TeXmacs manual pages from
$(mandir)
195 @echo
----------------------------------------------------
196 @echo TeXmacs has been successfully removed
198 .PHONY
: INSTALL UNINSTALL
200 ###############################################################################
201 # Make a bundle for Mac OS X
202 ###############################################################################
204 BUNDLE_SRC
= misc
/bundle
205 BUNDLE_APP
= ..
/distr
/TeXmacs.app
206 BUNDLE_DMG
= ..
/distr
/TeXmacs.dmg
207 BUNDLE_CONTENTS
= $(BUNDLE_APP
)/Contents
208 BUNDLE_RESOURCES
= $(BUNDLE_CONTENTS
)/Resources
209 BUNDLE_TEXMACS
= $(BUNDLE_RESOURCES
)/share
/TeXmacs
210 BUNDLE_FONTS
= TeXmacs-windows-fonts-1.0
-noarch.
tar.gz
214 $(RM
) -r
$(BUNDLE_APP
)
215 $(MKDIR
) $(BUNDLE_APP
)
216 $(MKDIR
) $(BUNDLE_CONTENTS
)
217 $(CP
) $(BUNDLE_SRC
)/Info.plist
$(BUNDLE_CONTENTS
)
218 $(CP
) $(BUNDLE_SRC
)/PkgInfo
$(BUNDLE_CONTENTS
)
219 $(MKDIR
) $(BUNDLE_CONTENTS
)/MacOS
220 $(CP
) TeXmacs
/bin
/texmacs.bin
$(BUNDLE_CONTENTS
)/MacOS
/TeXmacs
221 $(MKDIR
) $(BUNDLE_RESOURCES
)
222 $(CP
) $(BUNDLE_SRC
)/TeXmacs.icns
$(BUNDLE_RESOURCES
)
223 $(CP
) $(BUNDLE_SRC
)/TeXmacs-document.icns
$(BUNDLE_RESOURCES
)
224 $(CP
) src
/Plugins
/Cocoa
/English.lproj
$(BUNDLE_RESOURCES
)
225 $(MKDIR
) $(BUNDLE_RESOURCES
)/bin
226 $(MKDIR
) $(BUNDLE_RESOURCES
)/lib
227 $(MKDIR
) $(BUNDLE_RESOURCES
)/share
228 $(CP
) TeXmacs
$(BUNDLE_RESOURCES
)/share
229 $(RM
) $(BUNDLE_TEXMACS
)/bin
/texmacs.bin
230 $(RM
) -r
$(BUNDLE_TEXMACS
)/doc
231 if
[ -f ..
/doc
] ; then \
232 $(CP
) ..
/doc
$(BUNDLE_TEXMACS
) ;\
234 GUILE_DATA_PATH
=`guile-config info pkgdatadir`; \
235 export GUILE_DATA_PATH
; \
236 GUILE_LOAD_PATH
=`find $$GUILE_DATA_PATH -type d | grep ice-9`; \
237 export GUILE_LOAD_PATH
; \
238 $(CP
) $$GUILE_LOAD_PATH $(BUNDLE_TEXMACS
)/progs
/
239 $(CHMOD
) 644 $(BUNDLE_TEXMACS
)/progs
/ice-9
/*
240 $(CHMOD
) 755 $(BUNDLE_TEXMACS
)/progs
/ice-9
241 $(CHMOD
) 755 $(BUNDLE_TEXMACS
)/progs
/ice-9
/debugger
2>/dev
/null ||
:
242 $(CHMOD
) 755 $(BUNDLE_TEXMACS
)/progs
/ice-9
/debugging
2>/dev
/null ||
:
243 if
[ -f ..
/distr
/$(BUNDLE_FONTS
) ] ; then \
244 $(CP
) ..
/distr
/$(BUNDLE_FONTS
) $(BUNDLE_TEXMACS
) ; \
245 cd
$(BUNDLE_TEXMACS
) ; \
246 tar -zxf
$(BUNDLE_FONTS
); \
247 $(RM
) $(BUNDLE_FONTS
) ; \
249 # $(CP) /opt/local/bin/gs $(BUNDLE_RESOURCES)/bin
250 # $(CP) /opt/local/bin/ps2pdf $(BUNDLE_RESOURCES)/bin
251 # cp -R -f /opt/local/share/ghostscript $(BUNDLE_RESOURCES)/share
252 $(RM
) -r
$(BUNDLE_TEXMACS
)/CVS
253 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/CVS
254 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/CVS
255 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/CVS
256 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/CVS
257 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/CVS
258 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/*/CVS
259 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/*/*/CVS
260 $(RM
) -r
$(BUNDLE_TEXMACS
)/.svn
261 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/.svn
262 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/.svn
263 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/.svn
264 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/.svn
265 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/.svn
266 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/*/.svn
267 $(RM
) -r
$(BUNDLE_TEXMACS
)/*/*/*/*/*/*/*/.svn
269 define bundle_install_lib
270 $(CP
) $(1) $(BUNDLE_RESOURCES
)/lib
271 install_name_tool
-change
$(1) @executable_path
/..
/Resources
/lib
/$(2) $(BUNDLE_CONTENTS
)/MacOS
/texmacs.bin
272 install_name_tool
-id @executable_path
/..
/Resources
/lib
/$(2) $(BUNDLE_RESOURCES
)/lib
/$(2)
275 bundle_libraries
= $(shell otool
-L
$(BUNDLE_CONTENTS
)/MacOS
/texmacs.bin | grep
-o
'/\(opt\|sw\|Users\)/.*/lib[^/]*dylib')
278 $(foreach lib
, $(bundle_libraries
), $(call bundle_install_lib
,$(lib
),$(notdir $(lib
))) ;)
280 #BUNDLE: BUNDLE_MAIN BUNDLE_LIBS
282 $(BUNDLE_SRC
)/bundle-libs.sh
$(BUNDLE_CONTENTS
)/MacOS
/TeXmacs
287 hdiutil create
-srcfolder
$(BUNDLE_APP
) $(BUNDLE_DMG
)
288 $(RM
) -r
$(BUNDLE_APP
)
292 ###############################################################################
293 # Make a bundle for Windows
294 ###############################################################################
296 WIN_BUNDLE_SRC
= misc
/windows
297 WIN_BUNDLE_DIR
= ..
/distr
/TeXmacs-Windows
298 WIN_BUNDLE_BIN_DIR
= $(WIN_BUNDLE_DIR
)/bin
299 WIN_BUNDLE_FONTS
= TeXmacs-windows-fonts-1.0
-noarch.
tar.gz
301 ## WARNING: the following path list needs to be adapted manually
304 DLLS_IN_PATH
= $(wildcard $(addsuffix /$(1),$(subst :, ,$(DLLPATH
))))
305 DLL_LIST
= QtCore4.dll QtGui4.dll QtSvg4.dll mingwm10.dll libgmp
*.dll libguile
*.dll libfreetype
*.dll libltdl
*.dll libiconv
*.dll
$(GS_EXE
) $(GS_DLL
) wget.exe
306 DLLS
= $(foreach DLL
,$(DLL_LIST
),$(call DLLS_IN_PATH
,$(DLL
)))
308 WIN_BUNDLE_MAIN
: TEXMACS
310 $(RM
) -r
$(WIN_BUNDLE_DIR
)
311 $(MKDIR
) $(WIN_BUNDLE_DIR
)
312 $(CP
) TeXmacs
/* $(WIN_BUNDLE_DIR
)/.
313 $(MV
) $(WIN_BUNDLE_DIR
)/bin
/texmacs.bin
$(WIN_BUNDLE_DIR
)/bin
/texmacs.exe
314 $(RM
) -r
$(WIN_BUNDLE_DIR
)/bin
/texmacs
315 $(RM
) -r
$(WIN_BUNDLE_DIR
)/doc
316 $(CP
) ..
/doc
$(WIN_BUNDLE_DIR
)
317 GUILE_DATA_PATH
=`guile-config info pkgdatadir`; \
318 export GUILE_DATA_PATH
; \
319 GUILE_LOAD_PATH
=`find $$GUILE_DATA_PATH -type d | grep ice-9`; \
320 export GUILE_LOAD_PATH
; \
321 for I in
$$GUILE_LOAD_PATH ; do
$(CP
) $$I $(WIN_BUNDLE_DIR
)/progs
/ ; done
322 find
$(WIN_BUNDLE_DIR
)/progs
/ice-9
-type f
-exec
$(CHMOD
) 644 {} \
;
323 if
[ -f ..
/distr
/$(BUNDLE_FONTS
) ] ; then \
324 $(CP
) ..
/distr
/$(BUNDLE_FONTS
) $(WIN_BUNDLE_DIR
) ; \
325 cd
$(WIN_BUNDLE_DIR
) ; \
326 tar -zxf
$(BUNDLE_FONTS
); \
327 $(RM
) $(BUNDLE_FONTS
) ; \
329 # $(CP) /opt/local/bin/gs $(BUNDLE_RESOURCES)/bin
330 # $(CP) /opt/local/bin/ps2pdf $(BUNDLE_RESOURCES)/bin
331 # cp -R -f /opt/local/share/ghostscript $(BUNDLE_RESOURCES)/share
332 $(RM
) -r
$(WIN_BUNDLE_DIR
)/.svn
333 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/.svn
334 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/.svn
335 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/*/.svn
336 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/*/*/.svn
337 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/*/*/*/.svn
338 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/*/*/*/*/.svn
339 $(RM
) -r
$(WIN_BUNDLE_DIR
)/*/*/*/*/*/*/*/.svn
343 for DLL in
$(DLLS
) ; do
$(CP
) $$DLL $(WIN_BUNDLE_BIN_DIR
) ; done
346 WIN_BUNDLE
: WIN_BUNDLE_MAIN WIN_BUNDLE_LIBS
350 ###############################################################################
351 # Cleaning and backups
352 ###############################################################################
355 $(RM
) -r
$(tmdir
)/doc
/examples
356 $(RM
) -r
$(tmdir
)/doc
/images
357 $(RM
) -r
$(tmdir
)/doc
/tutorial
358 $(RM
) -r
$(tmdir
)/doc
/web
359 $(RM
) -r
$(tmdir
)/doc
/plugins
360 $(RM
) -r
$(tmdir
)/doc
/CVS
361 $(RM
) -r
$(tmdir
)/doc
/*/CVS
362 $(RM
) -r
$(tmdir
)/doc
/*/*/CVS
363 $(RM
) -r
$(tmdir
)/doc
/*/*/*/CVS
364 $(RM
) -r
$(tmdir
)/doc
/*/*/*/*/CVS
365 $(RM
) -r
$(tmdir
)/doc
/.svn
366 $(RM
) -r
$(tmdir
)/doc
/*/.svn
367 $(RM
) -r
$(tmdir
)/doc
/*/*/.svn
368 $(RM
) -r
$(tmdir
)/doc
/*/*/*/.svn
369 $(RM
) -r
$(tmdir
)/doc
/*/*/*/*/.svn
372 $(RM
) $(tmdir
)/TEX_PATHS
386 $(RM
) plugins
/*/*/core
387 $(RM
) $(tmdir
)/lib
/*.a
388 $(RM
) $(tmdir
)/fonts
/error
/* 2>/dev
/null ||
:
389 $(RM
) -r autom
*.cache
392 cd src
; $(MAKE
) -f makefile DISTR
395 $(RM
) $(tmdir
)/examples
/plugins
/bin
/* 2>/dev
/null ||
:
396 $(RM
) -r
$(tmdir
)/plugins
397 $(RM
) $(tmdir
)/lib
/* 2>/dev
/null ||
:
398 $(RM
) $(tmdir
)/bin
/* 2>/dev
/null ||
:
399 $(RM
) -r
$(tmdir
)/misc
/images
/.xvpics
400 $(RM
) -r
$(tmdir
)/progs
/ice-9
404 cd src
; $(MAKE
) -f makefile CLEAN
406 CLEAN
: SCLEAN RCLEAN CLEAN_PLUGINS
409 $(RM
) src
/Objects
/* 2>/dev
/null ||
:
410 $(RM
) misc
/doxygen
/Doxyfile
411 $(RM
) misc
/man
/texmacs
.1
412 $(RM
) misc
/scripts
/fig2ps
413 $(RM
) misc
/scripts
/texmacs
414 $(RM
) src
/System
/config.h
415 $(RM
) src
/System
/tm_configure.hpp
417 $(RM
) TeXmacs
/examples
/plugins
/dynlink
/Makefile
423 .PHONY
: RDISTR DISTR RCLEAN SCLEAN DISTCLEAN
425 ###############################################################################
426 # Miscellaneous targets
427 ###############################################################################
436 $(TOUCH
) */*/*/*/*.
cpp
439 $(STRIP
) $(tmdir
)/bin
/texmacs.bin
440 $(STRIP
) $(tmdir
)/lib
/*.
$(so
) 2>/dev
/null ||
>/dev
/null
441 $(STRIP
) $(tmdir
)/plugins
/*/bin
/* 2>/dev
/null ||
>/dev
/null
445 $(CHMOD
) -R go
+x
$(tmdir
)/bin
446 $(CHMOD
) -R go
+x
$(tmdir
)/lib
448 .PHONY
: TOUCH STRIP ACCESS_FLAGS