348 lines
12 KiB
Makefile
348 lines
12 KiB
Makefile
|
#
|
||
|
# USAGE:
|
||
|
#
|
||
|
# make <option>
|
||
|
#
|
||
|
# to see a list of all options, enter 'make help'
|
||
|
#
|
||
|
# Note! on some systems do 'gmake' instead of 'make' (most BSD)
|
||
|
#
|
||
|
# for 'make install' you have to login as 'root' else do 'make install_home'
|
||
|
# note that 'make install_home' will not install guiserver files which
|
||
|
# must be in /usr/local/share/newlisp in MacOX X and UNIX machines
|
||
|
#
|
||
|
# to make the distribution archive: 'make dist'
|
||
|
#
|
||
|
# to clean up (delete .o *~ core etc.): 'make clean'
|
||
|
#
|
||
|
# for customization options, like install location, 64-bit nerwlisp,
|
||
|
# newLISP as a library etc., see the file doc/INSTALL.txt
|
||
|
#
|
||
|
# Regular expressions are on all platforms Perl Compatible Regular Expresssions PCRE
|
||
|
# see http://www.pcre.org. PCRE can be localized to other languages than English
|
||
|
# by generating different character tables, see documentation at www.pcre.org
|
||
|
# and file LOCALIZATION for details
|
||
|
#
|
||
|
|
||
|
VERSION = 10.7.0
|
||
|
INT_VERSION = 10700
|
||
|
|
||
|
default: makefile_build
|
||
|
make -f makefile_build
|
||
|
|
||
|
makefile_build:
|
||
|
./configure
|
||
|
|
||
|
all: default
|
||
|
|
||
|
help:
|
||
|
@echo "\nDo one of the following:"
|
||
|
@echo " make # auto-select one of the predefined makefiles and build newLISP"
|
||
|
@echo " make help # display this help"
|
||
|
@echo " make install # install on LINUX/UNIX in /usr/local/bin and /usr/local/share (need to be root)"
|
||
|
@echo " make uninstall # uninstall on LINUX/UNIX from /usr/local/bin and /usr/local/share (need to be root)"
|
||
|
@echo " make install_home # install on LINUX/UNIX in users home directory "
|
||
|
@echo " make uninstall_home # uninstall on LINUX/UNIX from users home directory "
|
||
|
@echo
|
||
|
@echo " make clean # remove all *.o and .tar files etc. USE BETWEEN FLAVORS!"
|
||
|
@echo " make check # run qa-dot, qa-net, qa-xml etc. test scripts"
|
||
|
@echo " make test # same as 'make check' but less output"
|
||
|
@echo " make testall # run an extended test suite with less output"
|
||
|
@echo " make version # replace version number in several files after changing in Makefile"
|
||
|
@echo " make bench # benchmark relative to 32-bit Mac OS 10.5 on MacMini 1.83Ghz"
|
||
|
@echo " make dist # make a source distribution .tgz package "
|
||
|
@echo " make android_dist # make a source package for Android NDK compilation"
|
||
|
@echo " make android_dist_utf8 # make a source package for Android NDK compilationi utf8"
|
||
|
@echo
|
||
|
@echo "Note! on some systems use gmake instead of make."
|
||
|
@echo "Note! not all makefiles are listed in this help, specifically 64-bit versions."
|
||
|
@echo " "
|
||
|
@echo "Readline is for commandline editing support and requires libreadline and headerfiles."
|
||
|
@echo "Not all makefiles contain libreadline support, but is easy to add (see other makefieles)."
|
||
|
@echo "If there is no UTF-8 option for your OS, consult makefile_xxx."
|
||
|
@echo " "
|
||
|
@echo "For more customization options (exe dir, install dir, 64-biti, etc) see the file doc/INSTALL"
|
||
|
|
||
|
# make newlisp.exe and newlisp.dll on a MinGW, MSYS system
|
||
|
# also needs the installer NSYS installed
|
||
|
winall:
|
||
|
make clean
|
||
|
make -f makefile_mingw_ffi
|
||
|
rm *.o
|
||
|
make -f makefile_mingwdll_ffi
|
||
|
rm *.o
|
||
|
./newlisp qa-dot
|
||
|
|
||
|
# make newlisp.exe and newlisp.dll in UTF-8 flavor
|
||
|
winall_utf8:
|
||
|
make clean
|
||
|
make -f makefile_mingw_utf8_ffi
|
||
|
rm *.o
|
||
|
make -f makefile_mingwdll_utf8_ffi
|
||
|
rm *.o
|
||
|
./newlisp qa-dot
|
||
|
tar czvf newlisp-win-utf8.tgz newlisp.exe newlisp.dll
|
||
|
|
||
|
winall64:
|
||
|
make clean
|
||
|
make -f makefile_mingw64_ffi
|
||
|
rm *.o
|
||
|
make -f makefile_mingw64dll_ffi
|
||
|
rm *.o
|
||
|
./newlisp qa-dot
|
||
|
tar czvf newlisp-win64.tgz newlisp.exe newlisp.dll
|
||
|
|
||
|
# make newlisp.exe and newlisp.dll in UTF-8 flavor
|
||
|
winall64_utf8:
|
||
|
make clean
|
||
|
make -f makefile_mingw64_utf8_ffi
|
||
|
rm *.o
|
||
|
make -f makefile_mingw64dll_utf8_ffi
|
||
|
rm *.o
|
||
|
./newlisp qa-dot
|
||
|
tar czvf newlisp-win64-utf8.tgz newlisp.exe newlisp.dll
|
||
|
|
||
|
# make a Windows installer package
|
||
|
wings:
|
||
|
make -f makefile_wings
|
||
|
|
||
|
wings64:
|
||
|
make -f makefile_wings64
|
||
|
|
||
|
|
||
|
# scripts for making UBUNTU linux packages
|
||
|
|
||
|
dpkg:
|
||
|
make clean
|
||
|
cp makefile_original_install makefile_install
|
||
|
make -f makefile_linuxLP64_ffi
|
||
|
cp util/description-pak .
|
||
|
sudo checkinstall --nodoc --maintainer "lutz@nuevatec.com" --pkgrelease 1 --default
|
||
|
rm description-pak
|
||
|
mv *.deb ../Desktop
|
||
|
|
||
|
dpkg_utf8:
|
||
|
make clean
|
||
|
cp makefile_original_install makefile_install
|
||
|
make -f makefile_linuxLP64_utf8_ffi
|
||
|
cp util/description-pak .
|
||
|
sudo checkinstall --nodoc --maintainer "lutz@nuevatec.com" --pkgrelease utf8 --default
|
||
|
rm description-pak
|
||
|
mv *.deb ../Desktop
|
||
|
|
||
|
# scripts for making Mac OS X disk image installers
|
||
|
# makefile_darwin_package needs a previous /Applications/newLISP-GS.app
|
||
|
dmg_ppc:
|
||
|
make clean
|
||
|
make -f makefile_darwin_utf8_leopardPPC_ffi
|
||
|
make -f makefile_darwin_package
|
||
|
hdiutil create -srcfolder newLISP-image newlisp-$(VERSION)-OSX-ppc.dmg
|
||
|
mv newlisp-$(VERSION)-OSX-ppc.dmg ..
|
||
|
sudo rm -rf Package_contents
|
||
|
sudo rm -rf newLISP-image
|
||
|
|
||
|
# makefile_darwin_package needs a previous /Applications/newLISP-GS.app
|
||
|
dmg_intel:
|
||
|
make clean
|
||
|
make -f makefile_darwinLP64_utf8_ffi
|
||
|
make -f makefile_darwin_package
|
||
|
hdiutil create -srcfolder newLISP-image newlisp-$(VERSION)-OSX-intel.dmg
|
||
|
mv newlisp-$(VERSION)-OSX-intel.dmg ..
|
||
|
sudo rm -rf Package_contents
|
||
|
sudo rm -rf newLISP-image
|
||
|
|
||
|
# this cleans up the distribution directory for a clean build from scratch
|
||
|
|
||
|
# this cleans the tree for a rebuild using the same configuration as before
|
||
|
clean:
|
||
|
-rm -f *~ *.bak *.o *.obj *.map *.core core *.tgz *.txt TEST newlisp-universal
|
||
|
-rm -f newlisp-js*.*
|
||
|
-rm -rf newlisp-js-$(VERSION)
|
||
|
-rm -f guiserver/*.class */*~ */._*
|
||
|
-rm -f doc/*.bak util/*.bak examples/*.bak modules/*.bak
|
||
|
-chmod 644 *.h *.c Makefile makefile*
|
||
|
-chmod 755 configure configure-alt examples/*
|
||
|
-chmod 644 doc/* modules/*.lsp examples/*.lsp examples/*.html
|
||
|
-chmod 755 doc/index.cgi
|
||
|
-chmod 644 guiserver/*
|
||
|
-chmod 755 guiserver/index.cgi
|
||
|
-chmod 755 guiserver/images
|
||
|
-chmod 644 guiserver/images/*
|
||
|
-chmod 755 guiserver/images/index.cgi
|
||
|
-chmod 755 guiserver/java
|
||
|
-chmod 644 guiserver/java/*
|
||
|
-chmod 755 guiserver/java/index.cgi
|
||
|
-rm -f makefile_build makefile_install config.h test-*
|
||
|
|
||
|
# run test scripts
|
||
|
sharebug:
|
||
|
./newlisp qa-dot
|
||
|
|
||
|
|
||
|
check:
|
||
|
./newlisp qa-dot
|
||
|
./newlisp qa-specific-tests/qa-dictionary
|
||
|
./newlisp qa-specific-tests/qa-xml
|
||
|
./newlisp qa-specific-tests/qa-json
|
||
|
./newlisp qa-specific-tests/qa-setsig
|
||
|
./newlisp qa-specific-tests/qa-net
|
||
|
./newlisp qa-specific-tests/qa-cilk
|
||
|
./newlisp qa-specific-tests/qa-ref
|
||
|
./newlisp qa-specific-tests/qa-message
|
||
|
./newlisp qa-specific-tests/qa-win-dll
|
||
|
./newlisp qa-specific-tests/qa-bigint 10000
|
||
|
./newlisp qa-specific-tests/qa-bench
|
||
|
|
||
|
# old naming for check
|
||
|
test:
|
||
|
make check | grep '>>>'
|
||
|
|
||
|
checkall:
|
||
|
./newlisp qa-dot ; echo qa-dot
|
||
|
./newlisp qa-specific-tests/qa-dictionary
|
||
|
./newlisp qa-specific-tests/qa-xml
|
||
|
./newlisp qa-specific-tests/qa-json
|
||
|
./newlisp qa-specific-tests/qa-setsig
|
||
|
./newlisp qa-specific-tests/qa-net
|
||
|
./newlisp qa-specific-tests/qa-net6
|
||
|
./newlisp qa-specific-tests/qa-cilk
|
||
|
./newlisp qa-specific-tests/qa-ref
|
||
|
./newlisp qa-specific-tests/qa-message
|
||
|
./newlisp qa-specific-tests/qa-win-dll
|
||
|
./newlisp qa-specific-tests/qa-blockmemory
|
||
|
./newlisp qa-specific-tests/qa-exception
|
||
|
./newlisp qa-specific-tests/qa-float
|
||
|
./newlisp qa-specific-tests/qa-foop
|
||
|
./newlisp qa-specific-tests/qa-local-domain
|
||
|
./newlisp qa-specific-tests/qa-inplace
|
||
|
# ./newlisp qa-specific-tests/qa-utf16path
|
||
|
./newlisp qa-specific-tests/qa-pipefork
|
||
|
./newlisp qa-specific-tests/qa-libffi
|
||
|
./newlisp qa-specific-tests/qa-bigint 10000
|
||
|
./newlisp qa-specific-tests/qa-longnum
|
||
|
./newlisp qa-specific-tests/qa-factorfibo 60
|
||
|
./newlisp qa-specific-tests/qa-bench
|
||
|
|
||
|
testall:
|
||
|
make checkall | grep '>>>'
|
||
|
|
||
|
# benchmark
|
||
|
bench:
|
||
|
./newlisp qa-specific-tests/qa-bench
|
||
|
|
||
|
# install
|
||
|
|
||
|
# makefile_install normally is created by the configure script
|
||
|
# but when using 'make -f makefile_xxx' the file hasn't been
|
||
|
# created and is created with this dependency
|
||
|
|
||
|
makefile_install:
|
||
|
cp makefile_original_install makefile_install
|
||
|
|
||
|
install: makefile_install
|
||
|
-make -f makefile_install install
|
||
|
|
||
|
uninstall:
|
||
|
-make -f makefile_install uninstall
|
||
|
|
||
|
install_home:
|
||
|
-make -f makefile_install install_home
|
||
|
|
||
|
uninstall_home:
|
||
|
-make -f makefile_install uninstall_home
|
||
|
|
||
|
# This makes the main newlisp-x.x.x.tgz source distribuition package
|
||
|
dist: clean
|
||
|
-mkdir newlisp-$(VERSION)
|
||
|
-mkdir newlisp-$(VERSION)/guiserver
|
||
|
-mkdir newlisp-$(VERSION)/guiserver/images
|
||
|
-mkdir newlisp-$(VERSION)/guiserver/java
|
||
|
-mkdir newlisp-$(VERSION)/modules
|
||
|
-mkdir newlisp-$(VERSION)/examples
|
||
|
-mkdir newlisp-$(VERSION)/doc
|
||
|
-mkdir newlisp-$(VERSION)/util
|
||
|
-mkdir newlisp-$(VERSION)/qa-specific-tests
|
||
|
-mkdir newlisp-$(VERSION)/newlisp-js
|
||
|
cp README newlisp-$(VERSION)
|
||
|
cp nl*.c newlisp.c *.h pcre*.c index.cgi newlisp-$(VERSION)
|
||
|
cp win64-dll.def win-*.* unix*.c newlisp-$(VERSION)
|
||
|
cp Makefile configure* makefile* qa-dot qa-comma newlisp-$(VERSION)
|
||
|
cp modules/* newlisp-$(VERSION)/modules
|
||
|
cp examples/* newlisp-$(VERSION)/examples
|
||
|
cp doc/* newlisp-$(VERSION)/doc
|
||
|
cp util/* newlisp-$(VERSION)/util
|
||
|
cp qa-specific-tests/* newlisp-$(VERSION)/qa-specific-tests
|
||
|
cp -R guiserver/* newlisp-$(VERSION)/guiserver
|
||
|
cp -R newlisp-js/* newlisp-$(VERSION)/newlisp-js
|
||
|
tar czvf newlisp-$(VERSION).tgz newlisp-$(VERSION)/*
|
||
|
rm -rf newlisp-$(VERSION)
|
||
|
mv newlisp-$(VERSION).tgz ..
|
||
|
|
||
|
|
||
|
# this makes a Android source package for compilation using the Android NDK
|
||
|
# may want to change APP_PLATFORM spec to something different
|
||
|
android_dist_utf8:
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/jni
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/libs
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/libs/armeabi
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/obj
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/obj/local
|
||
|
-mkdir newlisp-ndk-utf8-$(VERSION)/obj/local/armeabi
|
||
|
cp nl*.c newlisp.c *.h pcre*.c newlisp-ndk-utf8-$(VERSION)/jni
|
||
|
rm newlisp-ndk-utf8-$(VERSION)/jni/win-ffi.h
|
||
|
cp doc/Android.html newlisp-ndk-utf8-$(VERSION)
|
||
|
cp util/Android-utf8.mk newlisp-ndk-utf8-$(VERSION)/jni/Android.mk
|
||
|
cp util/Application.mk newlisp-ndk-utf8-$(VERSION)/jni
|
||
|
tar czvf newlisp-ndk-utf8-$(VERSION).tgz newlisp-ndk-utf8-$(VERSION)/*
|
||
|
rm -rf newlisp-ndk-utf8-$(VERSION)
|
||
|
mv newlisp-ndk-utf8-$(VERSION).tgz ..
|
||
|
|
||
|
android_dist:
|
||
|
-mkdir newlisp-ndk-$(VERSION)
|
||
|
-mkdir newlisp-ndk-$(VERSION)/jni
|
||
|
-mkdir newlisp-ndk-$(VERSION)/libs
|
||
|
-mkdir newlisp-ndk-$(VERSION)/libs/armeabi
|
||
|
-mkdir newlisp-ndk-$(VERSION)/obj
|
||
|
-mkdir newlisp-ndk-$(VERSION)/obj/local
|
||
|
-mkdir newlisp-ndk-$(VERSION)/obj/local/armeabi
|
||
|
cp nl*.c newlisp.c *.h pcre*.c newlisp-ndk-$(VERSION)/jni
|
||
|
rm newlisp-ndk-$(VERSION)/jni/win-ffi.h
|
||
|
rm newlisp-ndk-$(VERSION)/jni/nl-utf8.c
|
||
|
cp doc/Android.html newlisp-ndk-$(VERSION)
|
||
|
cp util/Android.mk newlisp-ndk-$(VERSION)/jni
|
||
|
cp util/Application.mk newlisp-ndk-$(VERSION)/jni
|
||
|
tar czvf newlisp-ndk-$(VERSION).tgz newlisp-ndk-$(VERSION)/*
|
||
|
rm -rf newlisp-ndk-$(VERSION)
|
||
|
mv newlisp-ndk-$(VERSION).tgz ..
|
||
|
|
||
|
# this changes to the current version number in several files
|
||
|
#
|
||
|
# before doing a 'make version' the VERSION variable at the beginning
|
||
|
# of this file has to be changed to the new number
|
||
|
#
|
||
|
version:
|
||
|
sed -i.bak -E 's/int version = .+;/int version = $(INT_VERSION);/' newlisp.c
|
||
|
sed -i.bak -E 's/newLISP v.[[:digit:]]+.[[:digit:]]+.[[:digit:]]+(-dev)? /newLISP v.$(VERSION) /' newlisp.c
|
||
|
sed -i.bak -E 's/newLISP\/[[:digit:]]+.[[:digit:]]+.[[:digit:]]+(-dev)?/newLISP\/$(VERSION)/' nl-web.c
|
||
|
sed -i.bak -E 's/newLISP v.+ Manual/newLISP v.$(VERSION) Manual/' doc/newlisp_manual.html
|
||
|
sed -i.bak -E 's/Reference v.+<\/h2>/Reference v.$(VERSION)<\/h2>/' doc/newlisp_manual.html
|
||
|
sed -i.bak -E 's/newlisp-.....-win/newlisp-$(INT_VERSION)-win/' guiserver/newlisp-gs.nsi
|
||
|
sed -i.bak -E 's/and newLISP .+ on /and newLISP $(VERSION) on /' guiserver/newlisp-gs.nsi
|
||
|
sed -i.bak -E 's/newlisp-.....-win/newlisp-$(INT_VERSION)-win/' guiserver/newlisp64-gs.nsi
|
||
|
sed -i.bak -E 's/and newLISP .+ on /and newLISP $(VERSION) on /' guiserver/newlisp64-gs.nsi
|
||
|
sed -i.bak -E 's/VERSION=.+/VERSION=$(VERSION)/' configure-alt
|
||
|
sed -i.bak -E 's/VERSION=.+/VERSION=$(VERSION)/' makefile_original_install
|
||
|
sed -i.bak -E 's/VERSION=.+/VERSION=$(VERSION)/' makefile_darwin_package
|
||
|
sed -i.bak -E 's/VERSION=.+/VERSION=$(VERSION)/' makefile_wings
|
||
|
sed -i.bak -E 's/VERSION=.+/VERSION=$(VERSION)/' makefile_wings64
|
||
|
|
||
|
# Prepare the manual file for PDF conversion, by replaceing all <span class="function"></span>
|
||
|
# with <font color="#DD0000"></font> in the syntax statements and replacing → (one line
|
||
|
# arrow with ⇒ (double line arrow). This is necessary when using OpenOffcice PDF conversion
|
||
|
#
|
||
|
preparepdf:
|
||
|
util/preparepdf doc/newlisp_manual.html doc/newlisp_manual_preparepdf.html
|
||
|
|
||
|
# end of file
|