10 CONFIGDIR
:=$(ROOT
)/config
12 BS_SML
:=$(ROOT
)/bootstrap
/bin
/sml
13 BS_LINK
:=$(ROOT
)/bootstrap
/bin
/.link-sml
15 SMLNJ_HOME
:=/usr
/lib
/smlnj
16 BINDIR
:=$(SMLNJ_HOME
)/bin
17 HEAPDIR
:=$(BINDIR
)/heap
21 VERSION
=$(shell cat
$(CONFIGDIR
)/version
)
23 debscripts
:=$(addprefix debian
/,deregister mkorig pkg-deregister pkg-register register
)
25 srcdirs
:=$(basename $(wildcard *tgz
))
26 basedirs
:=$(basename $(notdir $(wildcard base
/*tgz
)))
28 notlibs
:=smlnj-runtime smlnj-doc
29 libpkgs
:=$(filter-out $(notlibs
),$(shell dh_listpackages
))
30 postinsts
:=$(addsuffix .postinst
,$(addprefix debian
/,$(libpkgs
)))
31 prerms
:=$(addsuffix .prerm
,$(addprefix debian
/,$(libpkgs
)))
34 echo
"s,@SHELL@,$(SHELL),g" > vars.sed
35 echo
"s,@SMLNJ_HOME@,$(SMLNJ_HOME)," >> vars.sed
36 echo
"s,@BINDIR@,$(BINDIR)," >> vars.sed
37 echo
"s,@VERSION@,$(VERSION)," >> vars.sed
39 arch-n-opsys
: $(CONFIGDIR
)/_arch-n-opsys vars.sed
40 cat
$< | sed
-f vars.sed
> $@
44 for f in
*tgz
; do
tar zxf
$$f -C bootstrap
; done
45 mkdir
-p bootstrap
/base
46 for f in base
/*tgz
; do
tar zxf
$$f -C bootstrap
/base
; done
47 cd bootstrap
&& URLGETTER
=/bin
/false .
/config
/install.sh
50 cd base
/system
&& echo
"CMB.make();" |
$< "\$$smlnj/cmb.cm";
51 cd base
/system
/sml.boot.
$* \
52 && $(BS_LINK
) @SMLboot
=BOOTLIST @SMLheap
=sml @SMLalloc
=1M \
54 rm -r base
/system
/sml.boot.
$*
55 rm -r base
/system
/*.bin.
$*
56 mv base
/system
/foo.boot.
$* base
/system
/sml.boot.
$*
57 cd base
/system
&& tar zcf
$(ROOT
)/$@ sml.boot.
$*;
60 eval
`./arch-n-opsys` && $(MAKE
) -f debian
/rules boot.
$$ARCH-unix.tgz
;
66 for c in
`cd bin && ls`; do \
67 cat debian
/wrapper.in | sed
-f vars.sed
-e
"s/@CMD@/$$c/g" > wrapper
/$$c; \
68 chmod
555 wrapper
/$$c; \
71 debian
/%.postinst
: debian
/postinst.in vars.sed
72 cat
$< | sed
-f vars.sed
-e
"s/@PKG@/$*/" > $@
74 debian
/%.prerm
: debian
/prerm.in vars.sed
75 cat
$< | sed
-f vars.sed
-e
"s/@PKG@/$*/" > $@
77 instscripts
: $(postinsts
) $(prerms
)
79 unpack-source
: unpack-source-stamp
81 cd base
&& for t in
$(basedirs
); do
tar zxf
$$t.tgz
; done
82 for t in
$(srcdirs
); do
tar zxf
$$t.tgz
; done
88 build-arch
: build-arch-stamp
89 build-arch-stamp
: unpack-source-stamp
91 install -m
555 $(debscripts
) debscripts
93 cat debian
/patches
/* | patch
-N
-p1
1>/dev
/null || true
94 cp config
/targets config
/targets.orig
95 cp debian
/targets config
/targets
96 $(MAKE
) -f debian
/rules smlnj
100 build-indep
: build-indep-stamp
101 build-indep-stamp
: unpack-source-stamp
102 ifeq (,$(filter nodoc
,$(DEB_BUILD_OPTIONS
)))
103 cd base
/cm
/Doc
; latex manual.
tex && latex manual.
tex && dvipdfmx
-o cm_manual.pdf manual.
dvi
104 cd ml-lpt
/doc
; latex manual.
tex && latex manual.
tex && dvipdfmx
-o ml-lpt_manual.pdf manual.
dvi
105 cd nlffi
/lib
/Doc
/manual
; latex nlffi.
tex && latex nlffi.
tex && dvipdfmx nlffi.
dvi
107 cd MLRISC
/Tools
/Doc
; make
108 cd ml-lex
; latex lexgen.
tex && latex lexgen.
tex && dvipdfmx lexgen.
dvi
118 rm -f
$(prerms
) $(postinsts
)
121 cd bootstrap
&& rm -rf bin ckit config lib src
122 rm -rf
$(SRCDIR
)/system
/foo.
* $(SRCDIR
)/system
/sml.
*
123 rm -rf bin lib wrapper debscripts
125 cd base
&& rm -rf
$(basedirs
)
129 cd bootstrap
&& rm -rf
`ls | grep -v unix.tgz`
133 install: install-arch-stamp install-indep-stamp
135 install-indep
: build-indep-stamp
141 install-arch
: build-arch-stamp instscripts
147 dh_installchangelogs
-psmlnj base
/compiler
/ChangeLog upstream
148 dh_installchangelogs
-plibcml-smlnj cml
/CHANGES upstream
149 dh_installchangelogs
-plibexene-smlnj eXene
/CHANGES upstream
150 dh_installchangelogs
-plibsmlnj-smlnj smlnj-lib
/CHANGES upstream
151 dh_installchangelogs
-plibckit-smlnj ckit
/HISTORY upstream
155 # make sure that the build path doesn't sneak in the link and run scripts
156 sed
-i
's/BIN_DIR=".*smlnj.*"/BIN_DIR="\/usr\/lib\/smlnj\/bin\/"/' $(CURDIR
)/debian
/smlnj-runtime
/usr
/lib
/smlnj
/bin
/.
*-sml
157 # install base pathconfig rules to smlnj-runtime package
158 install -m
644 config
/extrapathconfig
$(CURDIR
)/debian
/smlnj-runtime
/usr
/lib
/smlnj
/lib
/pathconfig
160 binary-arch
: install-arch
163 dh_installchangelogs
-a
164 dh_installdocs
--exclude
=".cvsignore" -a
165 dh_installexamples
--exclude
=".cvsignore" -a
176 binary-indep
: install-indep
179 dh_installchangelogs
-i
180 dh_installdocs
--exclude
=".cvsignore" -i
181 dh_installexamples
--exclude
=".cvsignore" -i
193 .PHONY
: unpack-source build build-arch build-indep
clean binary-arch binary-indep binary
install install-arch install-indep