File: rules

package info (click to toggle)
hugs98 98.200311-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 12,964 kB
  • ctags: 8,084
  • sloc: ansic: 67,521; haskell: 61,497; xml: 4,566; sh: 3,264; cpp: 1,936; yacc: 1,094; makefile: 915; cs: 883; sed: 10
file content (134 lines) | stat: -rwxr-xr-x 5,302 bytes parent folder | download
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