diff options
Diffstat (limited to 'distribute.mk.in')
-rw-r--r-- | distribute.mk.in | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/distribute.mk.in b/distribute.mk.in new file mode 100644 index 0000000..18e0fe6 --- /dev/null +++ b/distribute.mk.in @@ -0,0 +1,145 @@ +#!/usr/bin/make -f +# This is a Makefile "script" that aids in creating +# releases of SciTECO. +# It is probably of little help to ordinary users. +# It is not part of the normal build process. +# Since we need the source tarball and other files +# from the source tree, this script is substituted +# by ./configure and must thus be run from some configured +# build directory. + +# Distribution tarball +SCITECO_SRC = @PACKAGE@-@VERSION@.tar.gz +# Directory name in $(SCITECO_SRC) +SCITECO_DIR = @PACKAGE@-@VERSION@ + +$(SCITECO_SRC): + $(MAKE) dist + +all : $(SCITECO_SRC) debian mingw-binary + +# $(UBUNTU) sets the Ubuntu distribution and fixes the package's +# version +debian-prepare: debian-temp/ +.PHONY: debian-temp/ +debian-temp/ : $(SCITECO_SRC) + rm -rf debian-temp/ + mkdir debian-temp/ + (cd debian-temp/; \ + cp ../$(SCITECO_SRC) \ + sciteco_@PACKAGE_VERSION@.orig.tar.gz; \ + tar xzf sciteco_@PACKAGE_VERSION@.orig.tar.gz; \ + cp -r @abs_srcdir@/debian $(SCITECO_DIR)/; \ + ) +ifneq ($(UBUNTU),) + sciteco -e "@EB|debian-temp/$(SCITECO_DIR)/debian/changelog| \ + <@FS/ unstable;/ $(UBUNTU);/; -@S/)/R @I/ppa1~$(UBUNTU)1/ L> \ + @EW||" +endif + +SIGN ?= no +ifeq ($(SIGN),yes) +DEBUILD_FLAGS := +else +DEBUILD_FLAGS := -us -uc +endif + +# Whether to upload upstream sources (dist tarball) to the PPA +# This must be YES for new releases. +# It must be NO after the tarball has been +# uploaded once, else launchpad refuses +# building the source package. +# Launchpad will also refuse new versions of the +# tar ball for the same release, so the tarball +# should NOT be cleaned when uploading for multiple +# Ubuntu versions. +# If a bug is found only during PPA building, +# the upstream version must be increased since we +# cannot upload a new tarball and adding patches to the +# Debian package would be idiotic :-( +UPLOAD_SRC ?= yes +ifeq ($(UPLOAD_SRC),yes) +DEBUILD_FLAGS += -sa +else +DEBUILD_FLAGS += -sd +endif + +debian-source : debian-temp/source-stamp +debian-temp/source-stamp : debian-prepare + (cd debian-temp/$(SCITECO_DIR)/; \ + debuild -S $(DEBUILD_FLAGS); \ + ) + touch $@ + +debian-binary : debian-temp/binary-stamp +debian-temp/binary-stamp : debian-prepare + (cd debian-temp/$(SCITECO_DIR)/; \ + debuild -b $(DEBUILD_FLAGS); \ + ) + touch $@ + +debian : debian-source debian-binary + +ppa : debian-source + (cd debian-temp/; \ + dput ppa:robin-haberkorn/sciteco *.changes; \ + ) + +# Create Windows release. +# Assumes a correctly installed glib (with pkgconfig script) +# and static linking of all dependant libraries (no DLLs are +# added to the zip). +# If a win32.teco_ini exists, it is added to the release +# instead of sample.teco_ini. +# This also adds gspawn-win32-helper-console.exe to the archive +# which is required by the glib spawn functions. +# If we ever build a non-console version on Windows, +# we should include gspawn-win32-helper.exe instead. +# +# When linking in PDCurses/win32a statically, the +# environment variable PDCURSES_LIBS should be set to +# "-lpdcurses -lgdi32 -lcomdlg32" +MINGW_UI=pdcurses + +mingw-binary : @PACKAGE@-@PACKAGE_VERSION@-win32.zip +@PACKAGE@-@PACKAGE_VERSION@-win32.zip : $(SCITECO_SRC) + tar xzf $(SCITECO_SRC) + (cd $(SCITECO_DIR); \ + PKG_CONFIG=i686-w64-mingw32-pkg-config \ + PKG_CONFIG_LIBDIR=/usr/i686-w64-mingw32/lib/pkgconfig \ + ./configure --host=i686-w64-mingw32 build=i386-pc-linux-gnu \ + --prefix=/usr \ + --enable-static-executables \ + --disable-dependency-tracking \ + --with-interface=$(MINGW_UI) \ + --disable-bootstrap \ + --enable-html-manual \ + CFLAGS="-g -O3 -flto" CXXFLAGS="-g -O3 -flto" \ + LDFLAGS="-flto"; \ + ) + $(MAKE) -C $(SCITECO_DIR) \ + install-strip DESTDIR=`pwd`/temp-install + rm -rf $(SCITECO_DIR)/ + mkdir temp-bin/ + cp -r temp-install/usr/bin/* temp-install/usr/share/sciteco/* \ + temp-install/usr/share/doc/sciteco/* \ + temp-bin/ + cp @srcdir@/win32.teco_ini temp-bin/.teco_ini || \ + cp temp-install/usr/share/sciteco/sample.teco_ini \ + temp-bin/.teco_ini + cp @srcdir@/COPYING @srcdir@/ChangeLog temp-bin/ + rm -rf temp-install/ +# cp /usr/i686-w64-mingw32/bin/intl.dll \ +# /usr/i686-w64-mingw32/bin/libglib-2.0-0.dll \ +# /usr/i686-w64-mingw32/bin/pdcurses.dll \ +# temp-bin/ + cp /usr/i686-w64-mingw32/bin/gspawn-win32-helper-console.exe \ + temp-bin/ + i686-w64-mingw32-strip -s temp-bin/gspawn-win32-helper-console.exe + cd temp-bin/; zip -r ../$@ . + rm -rf temp-bin/ + +clean: + rm -rf $(SCITECO_SRC) + rm -rf debian-temp/ + rm -rf $(SCITECO_DIR)/ |