summaryrefslogtreecommitdiff
path: root/Makefile.shared
blob: afcf8e74646b223a6d53e0d18349c633029df2b8 (plain)
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
# If we 'export' all our variables to forked processes
# we end up with a horrible mess - since we propagate
# eg. ACLOCAL_M4, AMDEP_TRUE, COMPATH etc.
# - a nightmare in a nutshell => we need to export on a
#   need-to-know / minimal basis.

STAMP_DIR=$(top_builddir)/stamp

# Source preparation

unpack : $(OOBUILDDIR)/unpack $(top_srcdir)/bin/unpack
$(OOBUILDDIR)/unpack :
	$(TOOLSDIR)/bin/transform --revert $(TOOLSDIR) $(OOBUILDDIR)
	test -n "$(OOO_GIT_MANAGED)" && $(TOOLSDIR)/bin/gob --build-dir=$(OOBUILDDIR) prepare || true
	if test -d $(OOBUILDDIR)/applied_patches ; then \
		FLAGS=`$(TOOLSDIR)/bin/applyflags $(TOOLSDIR)/bin` ; \
		chmod +x $(TOOLSDIR)/patches/apply.pl && $(TOOLSDIR)/patches/apply.pl $(APPLY_DIR) $(OOBUILDDIR) $$FLAGS -f -R ; \
	fi
	cd $(top_srcdir)/bin ; ./unpack
	test -n "$(OOO_GIT_MANAGED)" && $(TOOLSDIR)/bin/gob --build-dir=$(OOBUILDDIR) postpare || true
	rm -f $(STAMP_DIR)/build $(STAMP_DIR)/patch.apply \
	      $(STAMP_DIR)/artwork.install
	touch $@

artwork.install : $(STAMP_DIR)/artwork.install
$(STAMP_DIR)/artwork.install : $(OOBUILDDIR)/unpack \
			      $(STAMP_DIR)/prebuild \
			      $(wildcard $(top_srcdir)/src/*.png) \
			      $(wildcard $(top_srcdir)/src/*.bmp)
	$(TOOLSDIR)/bin/install-artwork $(top_srcdir)/src $(OOBUILDDIR)
	touch $@

patch.apply: $(OOBUILDDIR)/unpack $(STAMP_DIR)/patch.apply 
$(STAMP_DIR)/patch.apply : $(top_srcdir)/patches/apply.pl \
			   $(top_srcdir)/patches/*/*.diff \
			   $(APPLY_DIR)/apply
	if test "z$(BUILD_WIN32)" != "z"; then \
	    cp -af $(BUILDDIR)/x86/* $(OOBUILDDIR)/external/dbghelp || true; \
	    cp -af $(BUILDDIR)/*.dll $(OOBUILDDIR)/external/unicows || true; \
	    mv $(OOBUILDDIR)/external/dbghelp/DbgHelp.Dll  \
		     $(OOBUILDDIR)/external/dbghelp/dbghelp.dll.temp || true; \
	    mv $(OOBUILDDIR)/external/dbghelp/dbghelp.dll.temp  \
		     $(OOBUILDDIR)/external/dbghelp/dbghelp.dll || true; \
	    chmod +x $(OOBUILDDIR)/external/dbghelp/*.dll \
		     $(OOBUILDDIR)/external/unicows/*.dll || true; \
	fi

	$(TOOLSDIR)/bin/transform --revert $(TOOLSDIR) $(OOBUILDDIR)
	test -n "$(OOO_GIT_MANAGED)" && $(TOOLSDIR)/bin/gob --build-dir=$(OOBUILDDIR) prepare || true
	FLAGS=`$(TOOLSDIR)/bin/applyflags $(TOOLSDIR)/bin` ; \
	chmod +x $(TOOLSDIR)/patches/apply.pl && $(TOOLSDIR)/patches/apply.pl $(APPLY_DIR) $(OOBUILDDIR) $$FLAGS --tag=$(CVSTAG) ;
	test -n "$(OOO_GIT_MANAGED)" && $(TOOLSDIR)/bin/gob --build-dir=$(OOBUILDDIR) postpare || true
	$(TOOLSDIR)/bin/transform --apply $(TOOLSDIR) $(OOBUILDDIR)
	test -n "$(OOO_GIT_MANAGED)" && cd $(OOBUILDDIR) && git commit -am 'Font munging.' || true
	$(TOOLSDIR)/bin/fix-deps $(OOBUILDDIR)
	rm -f $(STAMP_DIR)/build
	touch $@

patch.unapply:
	$(TOOLSDIR)/bin/transform --revert $(TOOLSDIR) $(OOBUILDDIR)
	FLAGS=`$(TOOLSDIR)/bin/applyflags $(TOOLSDIR)/bin` ; \
	chmod +x $(TOOLSDIR)/patches/apply.pl && $(TOOLSDIR)/patches/apply.pl $(APPLY_DIR) $(OOBUILDDIR) $$FLAGS -R ;
	rm -f $(STAMP_DIR)/patch.apply

patch.list:
	@FLAGS=`$(TOOLSDIR)/bin/applyflags $(TOOLSDIR)/bin` ; \
	chmod +x $(TOOLSDIR)/patches/apply.pl && $(TOOLSDIR)/patches/apply.pl $(APPLY_DIR) $(OOBUILDDIR) $$FLAGS --dry-run --quiet --tag=$(CVSTAG)

# Build bits:

prebuild : $(STAMP_DIR)/prebuild
$(STAMP_DIR)/prebuild : $(OOBUILDDIR)/unpack
	echo "Creating environment"
	mkdir -p $(BUILDDIR)
	mkdir -p $(BUILDDIR)/bin
	mkdir -p $(BUILDDIR)/share
	mkdir -p $(BUILDDIR)/share/aclocal
	mkdir -p $(BUILDDIR)/share/autoconf
	mkdir -p $(BUILDDIR)/lib
	mkdir -p $(BUILDDIR)/man
	mkdir -p $(BUILDDIR)/man/man1
	mkdir -p $(OOBUILDDIR)
	mkdir -p $(OOBUILDDIR)/external/msvcp71
	touch $@

build.tools : $(STAMP_DIR)/build.tools
$(STAMP_DIR)/build.tools : $(STAMP_DIR)/prebuild
	cd $(top_srcdir)/bin ; ./build-tools
	touch $@

build : $(STAMP_DIR)/build
$(STAMP_DIR)/build : $(OOBUILDDIR)/unpack \
		     $(STAMP_DIR)/patch.apply \
		     $(STAMP_DIR)/artwork.install \
		     $(STAMP_DIR)/build.tools \
		     $(STAMP_DIR)/prebuild
	cd $(top_srcdir)/bin ; ./build-ooo
	touch $@

all: build

install: $(STAMP_DIR)/build
if BUILD_WIN32
	cd bin ; ./make-win32-iso
else
	cd bin ; ./package-ooo
endif

dev-install: $(BUILDDIR)/install/program/ooenv
$(BUILDDIR)/install/program/ooenv: $(STAMP_DIR)/build
	cd bin; ./ooinstall -l $(BUILDDIR)/install

smoketest: $(BUILDDIR)/install/program/ooenv
	echo framework/required/f_topten.bas | $(OOBUILDDIR)/testautomation/tools/run_tests/run_tests.sh -p $(BUILDDIR)/install/basis*/program/testtool.bin

id : $(OOBUILDDIR)/ID
$(OOBUILDDIR)/ID : $(STAMP_DIR)/build
	cd $(OOBUILDDIR); $(TOOLSDIR)/bin/create-ids

gitignore : $(OOBUILDDIR)/.gitignore
$(OOBUILDDIR)/.gitignore : $(OOBUILDDIR)/unpack
	cd $(OOBUILDDIR); $(TOOLSDIR)/bin/create-gitignores.sh