1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
#! /usr/bin/make -f
# -*- Makefile -*-
# Written by Antti-Juhani Kaijanaho <ajk@debian.org>. Use, distribute
# and modify as you please.
# Modified slightly by William Irwin <wli@debian.org>
# Modified for Hugs-Nov2002-Nov2003 by Isaac Jones <ijones@syntaxpolice.org>
install := install -o root -g root
install_exec := $(install) -m 755 -s
install_dir := $(install) -m 755 -d
install_nonex = $(install) -m 644
install_script := $(install) -m 755
install_zipped := false
install_symlink = ln -s
GZIP := gzip -9v
DEBUG_OPT=
ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
DEBUG_OPT = --enable-debug
endif
package = hugs
tmpdir := $(shell pwd)/debian/tmp
# These must not be :='s
rootdir = $(tmpdir)/$(package)
libdir = $(rootdir)/usr/lib/hugs
docdir = $(rootdir)/usr/share/doc/$(package)
sharedir = $(rootdir)/usr/share
includedir = $(rootdir)/usr/include
mandir = $(rootdir)/usr/share/man
man1dir = $(mandir)/man1
build: debian/build.stamp
debian/build.stamp:
$(checkdir)
# upstream's config.{sub,guess} are out of date:
cp src/unix/config.sub src/unix/config.sub.old
cp src/unix/config.guess src/unix/config.guess.old
cp /usr/share/misc/config.sub src/unix
cp /usr/share/misc/config.guess src/unix
cd src/unix && CFLAGS="-g -Wall -fPIC" ./configure --prefix=/usr --mandir=/usr/share/man $(DEBUG_OPT)
touch $@
binary: binary-arch binary-indep
binary-indep: debian/binary-indep.stamp
debian/binary-indep.stamp:
touch $@
binary-arch: debian/binary-arch.stamp
debian/binary-arch.stamp: package=hugs
debian/binary-arch.stamp: debian/build.stamp
$(checkdir)
# Create the filesystem
$(RM) -r $(rootdir)
$(install_dir) $(rootdir)
$(install_dir) $(rootdir)/DEBIAN
$(install_dir) $(docdir)
# Install copyright file.
$(install_nonex) debian/copyright $(docdir)
# Install the change logs.
$(install_nonex) debian/changelog $(docdir)/changelog.Debian
$(GZIP) $(docdir)/changelog.Debian
# Install the installation scripts
$(install_script) debian/preinst debian/postinst \
debian/prerm debian/postrm \
$(rootdir)/DEBIAN
# Install the menu file
$(install_dir) $(rootdir)/usr/lib/menu
$(install_nonex) debian/menu \
$(rootdir)/usr/lib/menu/$(package)
# Install the system.
cd src && $(MAKE) DESTDIR="$(rootdir)" install
cd $(rootdir)/usr/bin && mv hugs hugs98 && mv runhugs runhugs98
cd $(rootdir)/usr/bin && $(install_symlink) hugs98 hugs \
&& $(install_symlink) runhugs98 runhugs
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
strip -R .comment -R .note --strip-all $(libdir)/libraries/Hugs/Storable.so $(libdir)/libraries/Foreign/C/Error.so $(libdir)/libraries/Foreign/Marshal/Alloc.so $(libdir)/libraries/Foreign/Marshal/Utils.so $(libdir)/libraries/System/Posix/DynamicLinker/Prim.so $(libdir)/libraries/System/Posix/Internals.so $(libdir)/libraries/System/Posix/Signals.so $(libdir)/libraries/System/Posix/Directory.so $(libdir)/libraries/System/Posix/Env.so $(libdir)/libraries/System/Posix/Files.so $(libdir)/libraries/System/Posix/Process.so $(libdir)/libraries/System/Posix/Resource.so $(libdir)/libraries/System/Posix/Temp.so $(libdir)/libraries/System/Posix/Terminal.so $(libdir)/libraries/System/Posix/Time.so $(libdir)/libraries/System/Posix/Unistd.so $(libdir)/libraries/System/Posix/User.so $(libdir)/libraries/Text/Regex/Posix.so $(libdir)/libraries/Network/BSD.so $(libdir)/libraries/Network/Socket.so $(rootdir)/usr/bin/hugs98 $(rootdir)/usr/bin/ffihugs $(rootdir)/usr/bin/runhugs98
endif
# Move the supporting documentation to place
$(install_dir) $(docdir)/examples
$(install_nonex) debian/README.Debian $(docdir)
mv $(libdir)/demos/* $(docdir)/examples
rmdir $(libdir)/demos
mv $(libdir)/docs/* $(docdir)
rmdir $(libdir)/docs
mv $(libdir)/{Readme,Credits} $(docdir)
# Install the manual page
# The man pages are all one:
$(GZIP) $(man1dir)/hugs.1
$(GZIP) $(man1dir)/hugs-package.1
cd $(man1dir) && $(install_symlink) hugs.1.gz runhugs.1.gz
cd $(man1dir) && $(install_symlink) hugs.1.gz runhugs98.1.gz
cd $(man1dir) && $(install_symlink) hugs.1.gz ffihugs.1.gz
cd $(man1dir) && $(install_symlink) hugs.1.gz hugs98.1.gz
$(RM) $(libdir)/License
# Generate the binary control file.
dpkg-shlibdeps $(rootdir)/usr/bin/*
dpkg-gencontrol -isp -P$(rootdir)
# Fix permissions.
chown -R root.root $(rootdir)
chmod -R g-ws $(rootdir)
chmod -x $(docdir)/*.txt
# Genearate the deb.
dpkg --build $(rootdir) ..
touch $@
define checkdir
test -f Install -a -f debian/rules
endef
clean: clean-build clean-binary
clean-binary:
$(RM) debian/binary-*.stamp
$(RM) -r debian/tmp
$(RM) debian/*~ debian/files debian/substvars
clean-build:
$(RM) debian/build*.stamp
set -e ; cd src && if [ -e Makefile ] ; then $(MAKE) clean ; fi
-cd src/unix && $(RM) config.log config.cache config.status
-cd src && $(RM) Makefile config.h options.h platform.h
# put the old config.{sub,guess} files back so as to not bloat the diff
if [ -e src/unix/config.sub.old ] ; then mv src/unix/config.sub.old src/unix/config.sub ; fi
if [ -e src/unix/config.guess.old ] ; then mv src/unix/config.guess.old src/unix/config.guess ; fi
# Cleanup
-cd docs && $(RM) {Makefile,hugs.1}
-cd docs/users_guide && $(RM) Makefile *.sgml
-cd docs/users_guide && $(RM) -r users_guide
-cd src/unix && $(RM) hugs-package BuildFFI
|