1#   @configure_input@
2#
3#   Main GNUmakefile for the GNUstep GNUmakefile Package.
4#
5#   Copyright (C) 1997-2008 Free Software Foundation, Inc.
6#
7#   Author: Scott Christley <scottc@net-community.com>
8#   Author: Nicola Pero <nicola.pero@meta-innovation.com>
9#
10#   This file is part of the GNUstep Makefile Package.
11#
12#   This library is free software; you can redistribute it and/or
13#   modify it under the terms of the GNU General Public License
14#   as published by the Free Software Foundation; either version 3
15#   of the License, or (at your option) any later version.
16#
17#   You should have received a copy of the GNU General Public
18#   License along with this library; see the file COPYING.
19#   If not, write to the Free Software Foundation,
20#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
22# Disable all built-in suffixes for performance.
23.SUFFIXES:
24
25# Disable all built-in rules with a vague % as target, for performance.
26%: %.c
27
28%: %.cpp
29
30%: %.cc
31
32%: %.C
33
34(%): %
35
36%:: %,v
37
38%:: RCS/%,v
39
40%:: RCS/%
41
42%:: s.%
43
44%:: SCCS/s.%
45
46#
47# I've thought about using the Makefile package files
48# to install the GNUmakefile package, a cool little recursion,
49# but there is nothing to made, and the files get installed
50# in a special directory, so it was simpler this way.
51#
52include config-noarch.make
53include config.make
54
55
56# To install everything inside a temporary directory (say as part of
57# building a binary package - deb or rpm), use something like `make
58# install DESTDIR=/var/tmp/gnustep-make'
59DESTDIR =
60
61# 'special_prefix' is an old alias for DESTDIR.
62ifneq ($(special_prefix),)
63  ifeq ($(GNUSTEP_MAKE_STRICT_V2_MODE),yes)
64    $(error "ERROR: special_prefix is deprecated.  Please use DESTDIR instead")
65  else
66    $(warning "WARNING: special_prefix is deprecated.  Please use DESTDIR instead")
67  endif
68  DESTDIR = $(special_prefix)
69endif
70
71override GNUSTEP_CONFIG_FILE = $(DESTDIR)@GNUSTEP_CONFIG_FILE@
72override GNUSTEP_CONFIG_FILE_DIR = $(dir $(GNUSTEP_CONFIG_FILE))
73tooldir = $(DESTDIR)@GNUSTEP_SYSTEM_TOOLS@
74makedir = $(DESTDIR)@GNUSTEP_MAKEFILES@
75mandir  = $(DESTDIR)@GNUSTEP_SYSTEM_DOC_MAN@
76srcdir = @srcdir@
77VPATH = @srcdir@
78testdir=$(makedir)/TestFramework
79
80override GNUSTEP_IS_FLATTENED = @GNUSTEP_IS_FLATTENED@
81override GNUSTEP_TARGET_CPU = @clean_target_cpu@
82override GNUSTEP_TARGET_VENDOR = @clean_target_vendor@
83override GNUSTEP_TARGET_OS = @clean_target_os@
84
85override GNUSTEP_LIB_COMBO = @ac_cv_library_combo@
86
87ifeq ($(GNUSTEP_IS_FLATTENED), no)
88  override GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)-$(GNUSTEP_TARGET_OS)
89  override GNUSTEP_TARGET_LDIR = $(GNUSTEP_TARGET_DIR)/$(GNUSTEP_LIB_COMBO)
90  override MAYBE_LIBRARY_COMBO = $(GNUSTEP_LIB_COMBO)
91  override MAKE_CONFIG_DIR = $(GNUSTEP_TARGET_LDIR)
92else
93  override GNUSTEP_TARGET_DIR = .
94  override GNUSTEP_TARGET_LDIR = .
95  override MAYBE_LIBRARY_COMBO = .
96  override MAKE_CONFIG_DIR = .
97endif
98
99export GNUSTEP_TARGET_DIR
100export GNUSTEP_TARGET_LDIR
101export MAYBE_LIBRARY_COMBO
102
103INSTALL		= @INSTALL@
104INSTALL_PROGRAM	= @INSTALL_PROGRAM@
105INSTALL_DATA	= @INSTALL_DATA@
106
107VERTAG = $(subst .,_,$(GNUSTEP_MAKE_VERSION))
108
109SVNPREFIX=svn+ssh://svn.gna.org/svn/gnustep/tools/make
110
111MAKE_FILES = aggregate.make application.make bundle.make service.make \
112	common.make empty.make library-combo.make java.make jni.make library.make \
113	messages.make parallel-subdirectories.make rules.make serial-subdirectories.make \
114	target.make names.make resource-set.make \
115	tool.make ctool.make test-library.make \
116	objc.make test-application.make test-tool.make subproject.make \
117	palette.make gswapp.make gswbundle.make clibrary.make \
118	documentation.make java-tool.make framework.make \
119	native-library.make spec-rules.template \
120        tar-exclude-list gnustep-make-help
121
122MASTER_MAKE_FILES = \
123        source-distribution.make rpm.make rules.make \
124        application.make bundle.make clibrary.make ctool.make \
125        documentation.make framework.make gswapp.make gswbundle.make \
126        library.make nsis.make deb.make objc.make java.make java-tool.make palette.make \
127	parallel-subdirectories.make resource-set.make serial-subdirectories.make \
128	service.make subproject.make test-application.make \
129        test-library.make test-tool.make tool.make
130
131INSTANCE_MAKE_FILES = \
132        rules.make \
133        application.make bundle.make clibrary.make ctool.make \
134        documentation.make framework.make gswapp.make gswbundle.make \
135        library.make objc.make java.make java-tool.make palette.make \
136        resource-set.make service.make subproject.make test-application.make \
137        test-library.make test-tool.make tool.make
138
139INSTANCE_SHARED_MAKE_FILES = bundle.make headers.make java.make \
140                             pkgconfig.make stamp-string.make strings.make
141
142INSTANCE_DOC_MAKE_FILES = autogsdoc.make gsdoc.make install_files.make \
143                          javadoc.make latex.make texi.make
144
145TEST_FRAMEWORK_FILES = \
146	GNUmakefile.in Testing.h ObjectTesting.h README \
147	example1.m example2.m example3.m example4.m example5.m \
148	example6.m example7.m example8.m example9.m
149
150# Decide which version of the GNUstep.conf file we are going to
151# install; the standard one, or the strict gnustep-make v2 one ?
152ifeq ($(GNUSTEP_MAKE_STRICT_V2_MODE),yes)
153  GNUSTEP_DOT_CONF_FILE = GNUstep-strict-v2.conf
154else
155  GNUSTEP_DOT_CONF_FILE = GNUstep.conf
156endif
157
158# You can type 'make messages=yes' to see exactly which commands are
159# being executed.  Else we only print a summary description.
160ifeq ($(messages),yes)
161  EC =
162else
163  EC = @
164endif
165
166# To produce a signed Debian source and binary package,
167# call 'make debsign=yes'.
168ifeq ($(debsign),yes)
169  DEBUILD_ARGS = -nc
170else
171  DEBUILD_ARGS = -us -uc -nc
172endif
173
174# Version code that will be used in 'svn-export' target. Expand immediately;
175# it should be constant in the script.
176DATE_TIME_VERSION := $(shell date +%Y%m%d%H%M)
177
178# Revision; potentially expensive so expand when used.
179SVN_REVISION = $(shell svn info . | sed -ne 's/^Revision: //p')
180
181# Used to override version of .tar.gz that will be copied and used as .orig.tar.gz.
182ifeq ($(DEB_TARBALL_VERSION), )
183DEB_TARBALL_VERSION = $(GNUSTEP_MAKE_VERSION)
184endif
185
186all: generated-files
187	$(EC)(echo "Thanks.  All is ready: type '$(MAKE) install' to install gnustep-make.")
188
189install: generated-files
190	$(EC)(echo "Creating system tools directory: $(tooldir)"; \
191	 "$(srcdir)/mkinstalldirs" "$(tooldir)"; \
192	 echo "Creating makefile directories in: $(makedir)"; \
193	 "$(srcdir)/mkinstalldirs" \
194		"$(makedir)" \
195		"$(makedir)/$(GNUSTEP_TARGET_DIR)" \
196		"$(makedir)/$(GNUSTEP_TARGET_LDIR)" \
197		"$(makedir)/Additional" \
198		"$(makedir)/Auxiliary" \
199		"$(makedir)/Master" \
200		"$(makedir)/Instance" \
201		"$(makedir)/Instance/Shared" \
202		"$(makedir)/Instance/Documentation" \
203		"$(testdir)")
204	$(EC)(echo "Installing GNUstep configuration file in $(GNUSTEP_CONFIG_FILE)"; \
205	 "$(srcdir)/mkinstalldirs" "$(GNUSTEP_CONFIG_FILE_DIR)"; \
206	 $(INSTALL_DATA) $(GNUSTEP_DOT_CONF_FILE) "$(GNUSTEP_CONFIG_FILE)")
207	 $(EC)(echo "Installing gnustep-make support software")
208	 $(EC)(for f in config.guess config.sub install-sh mkinstalldirs \
209		clean_cpu.sh clean_os.sh \
210		clean_vendor.sh cpu.sh os.sh vendor.sh \
211		print_unique_pathlist.sh \
212		relative_path.sh strip_makefiles.sh; do \
213	     $(INSTALL_PROGRAM) -m 755 "$(srcdir)/$$f" "$(makedir)"; \
214	   done)
215	 $(EC)($(INSTALL_DATA) GNUstep.sh "$(makedir)"; \
216	  $(INSTALL_DATA) GNUstep.csh "$(makedir)"; \
217	  $(INSTALL_DATA) filesystem.sh "$(makedir)"; \
218	  $(INSTALL_DATA) filesystem.csh "$(makedir)"; \
219	  $(INSTALL_DATA) "$(srcdir)/GNUstep-reset.sh" "$(makedir)"; \
220	  $(INSTALL_PROGRAM) -m 755 fixpath.sh "$(makedir)"; \
221	  $(INSTALL_PROGRAM) -m 755 openapp "$(tooldir)"; \
222	  $(INSTALL_PROGRAM) -m 755 "$(srcdir)/debugapp" "$(tooldir)"; \
223	  $(INSTALL_PROGRAM) -m 755 opentool "$(tooldir)"; \
224	  $(INSTALL_PROGRAM) -m 755 gnustep-config "$(tooldir)")
225	 $(EC)(echo "Installing makefiles"; \
226	   for f in $(MAKE_FILES); do \
227	     $(INSTALL_DATA) "$(srcdir)/$$f" "$(makedir)"; \
228	   done; \
229	   for f in $(MASTER_MAKE_FILES); do \
230	     $(INSTALL_DATA) "$(srcdir)/Master/$$f" "$(makedir)/Master"; \
231	   done; \
232	   for f in $(INSTANCE_MAKE_FILES); do \
233	     $(INSTALL_DATA) "$(srcdir)/Instance/$$f" "$(makedir)/Instance"; \
234	   done; \
235	   for f in $(INSTANCE_SHARED_MAKE_FILES); do \
236	     $(INSTALL_DATA) "$(srcdir)/Instance/Shared/$$f" \
237	                     "$(makedir)/Instance/Shared"; \
238	   done; \
239	   for f in $(INSTANCE_DOC_MAKE_FILES); do \
240	     $(INSTALL_DATA) "$(srcdir)/Instance/Documentation/$$f" \
241	                     "$(makedir)/Instance/Documentation"; \
242	   done; \
243	   $(INSTALL_PROGRAM) -m 755 "$(srcdir)/app-wrapper.template" "$(makedir)"; \
244	   $(INSTALL_PROGRAM) -m 755 "$(srcdir)/java-executable.template" "$(makedir)"; \
245	   $(INSTALL_PROGRAM) -m 755 executable.template "$(makedir)"; \
246	   $(INSTALL_DATA) "$(srcdir)/nsi-app.template" "$(makedir)"; \
247	   $(INSTALL_DATA) -m 755 "$(srcdir)/bake_debian_files.sh" "$(makedir)"; \
248	   $(INSTALL_DATA) config-noarch.make "$(makedir)"; \
249	   $(INSTALL_DATA) filesystem.make "$(makedir)"; \
250	   $(INSTALL_DATA) config.make "$(makedir)/$(MAKE_CONFIG_DIR)")
251	$(EC)(echo "Installing Test Framework scripts"; \
252	  $(INSTALL_PROGRAM) -m 755 TestFramework/gnustep-tests "$(tooldir)"; \
253	  $(INSTALL_PROGRAM) -m 755 $(srcdir)/TestFramework/Summary.sh "$(testdir)")
254	$(EC)(echo "Installing Test Framework support files"; \
255	   for f in $(TEST_FRAMEWORK_FILES); do \
256	     $(INSTALL_DATA) "$(srcdir)/TestFramework/$$f" "$(testdir)"; \
257	   done)
258	$(EC)(echo "Installing (and compressing) manpages"; \
259	  "$(srcdir)/mkinstalldirs" "$(mandir)/man1" \
260	                          "$(mandir)/man7"; \
261	  $(INSTALL_DATA) "$(srcdir)/Documentation/debugapp.1" "$(mandir)/man1"; \
262	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/debugapp.1.gz" && gzip -9 -n "$(mandir)/man1/debugapp.1"; \
263	  $(INSTALL_DATA) "$(srcdir)/Documentation/gnustep-config.1" "$(mandir)/man1"; \
264	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/gnustep-config.1.gz" && gzip -9 -n "$(mandir)/man1/gnustep-config.1"; \
265	  $(INSTALL_DATA) "$(srcdir)/Documentation/gnustep-tests.1" "$(mandir)/man1"; \
266	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/gnustep-tests.1.gz" && gzip -9 -n "$(mandir)/man1/gnustep-tests.1"; \
267	  $(INSTALL_DATA) "$(srcdir)/Documentation/openapp.1" "$(mandir)/man1"; \
268	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/openapp.1.gz" && gzip -9 -n "$(mandir)/man1/openapp.1"; \
269	  $(INSTALL_DATA) "$(srcdir)/Documentation/opentool.1" "$(mandir)/man1"; \
270	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/opentool.1.gz" && gzip -9 -n "$(mandir)/man1/opentool.1"; \
271	  $(INSTALL_DATA) "$(srcdir)/Documentation/GNUstep.7" "$(mandir)/man7"; \
272	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man7/GNUstep.7.gz" && gzip -9 -n "$(mandir)/man7/GNUstep.7"; \
273	  $(INSTALL_DATA) "$(srcdir)/Documentation/library-combo.7" "$(mandir)/man7"; \
274	  which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man7/library-combo.7.gz" && gzip -9 -n "$(mandir)/man7/library-combo.7")
275	$(EC)(if [ "@GNUSTEP_STRIP_MAKEFILES@" = "strip" ]; then \
276	   echo "Stripping makefiles and shell scripts..."; \
277	   cd "$(makedir)"; ./strip_makefiles.sh; \
278	   fi)
279	$(EC)(if [ "@GNUSTEP_INSTALL_LD_SO_CONF@" = "yes" ] ; then \
280	   echo "Installing ld.so.conf.d/gnustep-make.conf due to custom prefix..."; \
281	   "$(srcdir)/mkinstalldirs" $(DESTDIR)/etc/ld.so.conf.d ; \
282	    $(INSTALL_DATA) gnustep-make-ld.so.conf  "$(DESTDIR)/etc/ld.so.conf.d/gnustep-make.conf"; \
283	    \
284	   fi)
285
286uninstall:
287	rm -f "$(mandir)/man1/debugapp.1" "$(mandir)/man1/debugapp.1.gz"; \
288	rm -f "$(mandir)/man1/gnustep-config.1" "$(mandir)/man1/gnustep-config.1.gz"; \
289	rm -f "$(mandir)/man1/gnustep-tests.1" "$(mandir)/man1/gnustep-tests.1.gz"; \
290	rm -f "$(mandir)/man1/openapp.1" "$(mandir)/man1/openapp.1.gz"; \
291	rm -f "$(mandir)/man1/opentool.1" "$(mandir)/man1/opentool.1.gz"; \
292	rm -f "$(mandir)/man7/GNUstep.7" "$(mandir)/man7/GNUstep.7.gz"; \
293	rm -f "$(mandir)/man7/library-combo.7" "$(mandir)/man7/library-combo.7.gz"
294	-rmdir "$(mandir)/man1"
295	-rmdir "$(mandir)/man7"
296	-rmdir "$(mandir)"
297	for f in config.guess config.sub install-sh mkinstalldirs \
298		clean_cpu.sh clean_os.sh \
299		clean_vendor.sh cpu.sh os.sh vendor.sh \
300		print_unique_pathlist.sh fixpath.sh \
301		filesystem.sh filesystem.csh \
302	        GNUstep.sh GNUstep.csh GNUstep-reset.sh \
303		relative_path.sh strip_makefiles.sh; do \
304	  rm -f "$(makedir)/$$f"; \
305	done
306	rm -f "$(tooldir)/openapp"; \
307	rm -f "$(tooldir)/debugapp"; \
308	rm -f "$(tooldir)/opentool"; \
309	rm -f "$(tooldir)/gnustep-config"; \
310	rm -f "$(tooldir)/gnustep-tests"; \
311	rm -f "$(testdir)/Summary.sh"; \
312	for f in $(MAKE_FILES); do \
313	  rm -f "$(makedir)/$$f"; \
314	done
315	for f in $(MASTER_MAKE_FILES); do \
316	  rm -f "$(makedir)/Master/$$f"; \
317	done
318	for f in $(INSTANCE_MAKE_FILES); do \
319	  rm -f "$(makedir)/Instance/$$f"; \
320	done
321	for f in $(INSTANCE_SHARED_MAKE_FILES); do \
322	  rm -f "$(makedir)/Instance/Shared/$$f"; \
323	done
324	for f in $(INSTANCE_DOC_MAKE_FILES); do \
325	  rm -f "$(makedir)/Instance/Documentation/$$f"; \
326	done
327	for f in $(TEST_FRAMEWORK_FILES); do \
328	  rm -f "$(testdir)/$$f"; \
329	done
330	rm -f "$(makedir)/executable.template"
331	rm -f "$(makedir)/app-wrapper.template"
332	rm -f "$(makedir)/java-executable.template"
333	rm -f "$(makedir)/nsi-app.template"
334	rm -f "$(makedir)/bake_debian_files.sh"
335	rm -f "$(makedir)/config-noarch.make"
336	rm -f "$(makedir)/filesystem.make"
337	rm -f "$(makedir)/$(MAKE_CONFIG_DIR)/config.make"
338	rm -f "$(GNUSTEP_CONFIG_FILE)"
339	-rmdir "$(GNUSTEP_CONFIG_FILE_DIR)"
340	-rmdir "$(testdir)"
341	-rmdir "$(makedir)/Instance/Documentation"
342	-rmdir "$(makedir)/Instance/Shared"
343	-rmdir "$(makedir)/Instance"
344	-rmdir "$(makedir)/Master"
345	-rmdir "$(makedir)/Auxiliary"
346	-rmdir "$(makedir)/Additional"
347	-rmdir "$(makedir)/$(GNUSTEP_TARGET_LDIR)"
348	-rmdir "$(makedir)/$(GNUSTEP_TARGET_DIR)"
349	-rmdir "$(makedir)/$(GNUSTEP_TARGET_CPU)"
350	-rmdir "$(makedir)/$(GNUSTEP_LIB_COMBO)"
351	-rmdir "$(makedir)"
352	-rmdir "$(tooldir)"
353
354clean:
355	(cd Documentation; $(MAKE) distclean)
356	rm -f *~ Master/*~ Instance/*~ Instance/Shared/*~
357
358distclean: clean
359	(cd Documentation; $(MAKE) distclean)
360	rm -f GNUmakefile config-noarch.make config.make config.h
361	rm -f config.cache config.log config.status
362	rm -f openapp opentool executable.template
363	rm -f GNUstep.sh GNUstep.csh fixpath.sh gnustep-config
364	rm -f filesystem.make filesystem.sh filesystem.csh
365	rm -f gnustep-make.spec GNUstep.conf GNUstep-strict-v2.conf
366	rm -f config-precomp-test.out config-precomp-test.h.gch config-precomp-test.log
367	rm -f debian_dist/
368
369docs:
370	(cd Documentation; $(MAKE))
371
372install-docs:
373	(cd Documentation; $(MAKE) install)
374
375install-all:	install install-docs
376
377svn-tag:
378	svn copy $(SVNPREFIX)/trunk $(SVNPREFIX)/tags/make-$(VERTAG) \
379	  -m "Tag version $(VERTAG)"
380
381svn-tag-stable:
382	svn copy $(SVNPREFIX)/branches/stable $(SVNPREFIX)/tags/make-$(VERTAG) \
383	  -m "Tag version $(VERTAG)"
384
385svn-dist:
386	svn export $(SVNPREFIX)/tags/make-$(VERTAG) \
387	  gnustep-make-$(GNUSTEP_MAKE_VERSION)
388	tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)
389	rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)
390
391svn-snapshot:
392	svn export $(SVNPREFIX)/trunk \
393	  gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)
394	tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)
395	echo $(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION) > svn-snapshot-tarball-version
396	rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)
397
398svn-export:
399	@echo Note: any local changes are included.
400	svn export . \
401	  gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)~date$(DATE_TIME_VERSION)
402	tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)~date$(DATE_TIME_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)~date$(DATE_TIME_VERSION)
403	echo $(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)~date$(DATE_TIME_VERSION) > svn-export-tarball-version
404	rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)~svn$(SVN_REVISION)~date$(DATE_TIME_VERSION)
405
406cvs-tag:
407	cvs -z3 rtag make-$(VERTAG) make
408
409cvs-dist:
410	cvs -z3 export -r make-$(VERTAG) make
411	mv make gnustep-make-$(GNUSTEP_MAKE_VERSION)
412	tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)
413	rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)
414
415cvs-snapshot:
416	cvs -z3 export -D now make
417	mv make gnustep-make-$(GNUSTEP_MAKE_VERSION)
418	tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)
419	rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)
420
421ifeq ($(GIT_TAG_SIGN), )
422GIT_TAG_ANNOTATION_FLAGS = -a
423else
424  ifeq ($(GIT_TAG_SIGN), yes)
425  GIT_TAG_ANNOTATION_FLAGS = -s
426  else
427  GIT_TAG_ANNOTATION_FLAGS = -u $(GIT_TAG_SIGN)
428  endif
429endif
430
431git-tag-stable:
432	echo "*Error* tagging stable branch in Git is not supported at this time." && exit 1
433
434ifeq ($(GIT_TAG_ANNOUNCE_FILE),)
435git-tag:
436	git tag \
437	  $(GIT_TAG_ANNOTATION_FLAGS) \
438	  make-$(VERTAG) \
439	  -m "Release $(GNUSTEP_MAKE_VERSION)."
440else
441ifneq ($(GIT_TAG_ANNOUNCE_OMIT_PREFACE),yes)
442.INTERMEDIATE += git-tag-announce-file_$(GNUSTEP_MAKE_VERSION).tmp
443git-tag-announce-file_$(GNUSTEP_MAKE_VERSION).tmp: $(GIT_TAG_ANNOUNCE_FILE)
444	printf "Release $(GNUSTEP_MAKE_VERSION).\n\n" > $@
445	cat $(GIT_TAG_ANNOUNCE_FILE) >> $@
446
447git-tag: git-tag-announce-file_$(GNUSTEP_MAKE_VERSION).tmp
448	git tag \
449	  $(GIT_TAG_ANNOTATION_FLAGS) \
450	  make-$(VERTAG) \
451	  -F $<
452else
453git-tag:
454	git tag \
455	  $(GIT_TAG_ANNOTATION_FLAGS) \
456	  make-$(VERTAG) \
457	  -F $(GIT_TAG_ANNOUNCE_FILE)
458endif
459endif
460
461git-dist:
462	git archive --format=tar.gz make-$(VERTAG) -o gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz --prefix=gnustep-make-$(GNUSTEP_MAKE_VERSION)/
463
464hg-tag:
465	hg tag -m "Release $(PACKAGE_VERSION)" make-$(VERTAG)
466
467hg-dist:
468	hg archive -r make-$(VERTAG) -p gnustep-make-$(GNUSTEP_MAKE_VERSION)/ \
469	  gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz
470
471test-RPM_TOPDIR:
472	@(if [ -z "$(RPM_TOPDIR)" ]; then                                  \
473	  echo "Error - RPM_TOPDIR variable not set.";                     \
474	  echo "You need to set it to the top of your rpm directory tree"; \
475	  exit 1;                                                          \
476	fi)
477
478# The check for rpmbuild is for old RPM versions which didn't have
479# rpmbuild and used 'rpm -ba' instead.  It can be removed when we are
480# reasonably sure no more old RPM versions (not having rpmbuild), are
481# still around.
482rpm: test-RPM_TOPDIR svn-dist
483	cp gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz $(RPM_TOPDIR)/SOURCES/
484	cp gnustep-make.spec $(RPM_TOPDIR)/SPECS/
485	cd $(RPM_TOPDIR)/SPECS/
486	if which rpmbuild > /dev/null 2>/dev/null; then \
487	  rpmbuild="rpmbuild"; \
488	else \
489	  if which rpm > /dev/null 2>/dev/null; then \
490	    rpmbuild="rpm"; \
491	  else \
492	    echo "Error: You don't have rpm installed!"; \
493	    rpmbuild="rpmbuild"; \
494	  fi; \
495	fi; \
496	$${rpmbuild} -ba gnustep-make.spec
497
498debclean:
499	-rm -rf debian_dist
500
501deb: debian_dist/gnustep-make_$(DEB_TARBALL_VERSION)_any.deb
502
503debian_dist/gnustep-make_$(DEB_TARBALL_VERSION)_any.deb:
504	$(EC)(if [ ! -e "debian_dist/gnustep-make-$(DEB_TARBALL_VERSION)/debian/control" ] ; then \
505	  echo "Please manually run 'make debfiles' first." ; \
506	  echo "Intentionally not automatically depending to ease customization between steps." ; \
507	fi)
508	cd debian_dist/gnustep-make-$(DEB_TARBALL_VERSION)/ && EDITOR=/bin/true dpkg-source --commit -q . gnustep-make-automatic
509	cd debian_dist/gnustep-make-$(DEB_TARBALL_VERSION)/ && debuild $(DEBUILD_ARGS) -S
510	cd debian_dist/gnustep-make-$(DEB_TARBALL_VERSION)/ && debuild $(DEBUILD_ARGS) -b
511
512debfiles: debian_dist/gnustep-make_$(DEB_TARBALL_VERSION).orig.tar.gz
513	cd debian_dist && tar xfz gnustep-make_$(DEB_TARBALL_VERSION).orig.tar.gz
514	PACKAGE_NAME="gnustep-make" VERSION=$(DEB_TARBALL_VERSION) DEB_MAINTAINER="GNUstep Developers <gnustep-dev@gnu.org>" DEB_ARCHITECTURE=any /bin/bash bake_debian_files.sh debian_dist/gnustep-make-$(DEB_TARBALL_VERSION)/
515
516# Manual export is required to permit user to override .orig.tar.gz during the build process.
517# We also allow user to make a choice of where to grab .orig.tar.gz from.
518debian_dist/gnustep-make_$(DEB_TARBALL_VERSION).orig.tar.gz:
519	$(EC)(if [ ! -e gnustep-make-$(DEB_TARBALL_VERSION).tar.gz ] ; then \
520	  echo "Please manually create gnustep-make-$(DEB_TARBALL_VERSION).tar.gz." ; \
521	  echo "Some available make targets:" ; \
522	  echo " * svn-dist" ; \
523	  echo " * svn-snapshot" ; \
524	  echo " * svn-export" ; \
525	fi)
526
527	mkdir -p debian_dist
528	cp gnustep-make-$(DEB_TARBALL_VERSION).tar.gz debian_dist/gnustep-make_$(DEB_TARBALL_VERSION).orig.tar.gz
529
530generated-files: GNUmakefile GNUstep.sh GNUstep.csh fixpath.sh config-noarch.make config.make \
531                 openapp opentool gnustep-make.spec executable.template gnustep-config \
532                 filesystem.make filesystem.sh filesystem.csh GNUstep.conf GNUstep-strict-v2.conf \
533                 gnustep-make-ld.so.conf
534
535GNUmakefile: GNUmakefile.in config.status
536	$(SHELL) config.status
537
538GNUstep.sh: GNUstep.sh.in
539	$(SHELL) config.status
540
541GNUstep.csh: GNUstep.csh.in
542	$(SHELL) config.status
543
544GNUstep.conf: GNUstep.conf.in
545	$(SHELL) config.status
546
547GNUstep-strict-v2.conf: GNUstep-strict-v2.conf.in
548	$(SHELL) config.status
549
550fixpath.sh: fixpath.sh.in
551	$(SHELL) config.status
552
553filesystem.make: filesystem.make.in
554	$(SHELL) config.status
555
556filesystem.sh: filesystem.sh.in
557	$(SHELL) config.status
558
559filesystem.csh: filesystem.csh.in
560	$(SHELL) config.status
561
562config-noarch.make: config-noarch.make.in Version
563	$(SHELL) config.status --recheck
564
565config.make: config.make.in
566	$(SHELL) config.status --recheck
567
568openapp: openapp.in
569	$(SHELL) config.status
570
571opentool: opentool.in
572	$(SHELL) config.status
573
574gnustep-make.spec: gnustep-make.spec.in Version
575	$(SHELL) config.status --recheck
576
577executable.template: executable.template.in
578	$(SHELL) config.status
579
580gnustep-config: gnustep-config.in
581	$(SHELL) config.status
582
583gnustep-make-ld.so.conf: gnustep-make-ld.so.conf.in
584	$(SHELL) config.status
585
586