1#****************************************************************************** 2# 3# Copyright (C) 1998-2007, International Business Machines 4# Corporation and others. All Rights Reserved. 5# 6#****************************************************************************** 7## Top-level Makefile.in for ICU 8## Stephen F. Booth 9 10srcdir = . 11top_srcdir = . 12 13top_builddir = . 14 15include $(top_builddir)/icudefs.mk 16 17docdir = $(datadir)/doc 18docsubdir = $(PACKAGE)$(ICULIBDASHSUFFIX)/html 19 20## 21 22## Build directory information 23subdir = . 24 25#AUTOCONF = @AUTOCONF@ 26 27## Optional directory setup 28LAYOUT = layout layoutex 29ICUIO = io 30EXTRA = extra 31TEST = test 32SAMPLE = samples 33 34DOXYGEN = /usr/bin/doxygen 35 36## Files to remove for 'make clean' 37CLEANFILES = *~ 38 39## Files built (autoconfed) and installed 40INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config $(top_srcdir)/config/mh-linux $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%) 41 42## Files built (autoconfed) but not installed 43LOCAL_BUILT_FILES = icudefs.mk 44 45DOCDIRS = common i18n 46SUBDIRS = stubdata common i18n $(LAYOUT) tools data $(ICUIO) $(EXTRA) $(SAMPLE) $(TEST) 47 48SECTION = 1 49 50MANX_FILES = config/icu-config.$(SECTION) 51 52ALL_MAN_FILES = $(MANX_FILES) 53 54## Extra files to install [nothing at present] 55EXTRA_DATA = 56 57## List of phony targets 58.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \ 59install-recursive clean clean-local clean-recursive distclean \ 60distclean-local distclean-recursive doc dist dist-local dist-recursive \ 61check check-local check-recursive clean-recursive-with-twist install-icu \ 62doc install-doc tests 63 64## Clear suffix list 65.SUFFIXES : 66 67## List of standard targets 68all: all-local all-recursive 69install: install-recursive install-local 70clean: clean-recursive-with-twist clean-local 71distclean : distclean-recursive distclean-local 72dist: dist-recursive dist-local 73check: all check-recursive check-local 74check-recursive: all 75 76ifeq ($(DOXYGEN),) 77doc: 78 @echo you need Doxygen to generate documentation. Doxygen can be found on the Web 79 @echo at http://www.doxygen.org/ 80else 81doc: doc/html/index.html 82 83doc/html/index.html: Doxyfile $(wildcard ./common/unicode/platform.h $(srcdir)/common/unicode/*.h $(srcdir)/i18n/unicode/*.h $(srcdir)/layout/unicode/*.h $(srcdir)/io/unicode/*.h) 84 $(DOXYGEN) 85 86Doxyfile: $(srcdir)/Doxyfile.in 87 CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status 88endif 89 90LOCAL_SUBDIRS = $(SUBDIRS) 91CLEAN_FIRST_SUBDIRS = tools 92 93$(LIBDIR) $(BINDIR): 94 -$(MKINSTALLDIRS) $@ 95 96## Recursive targets 97all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive: $(LIBDIR) $(BINDIR) 98 @dot_seen=no; \ 99 target=`echo $@ | sed s/-recursive//`; \ 100 list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \ 101 echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \ 102 if test "$$subdir" = "."; then \ 103 dot_seen=yes; \ 104 local_target="$$target-local"; \ 105 else \ 106 local_target="$$target"; \ 107 fi; \ 108 (cd $$subdir && $(MAKE) RECURSIVE=YES $$local_target) || exit; \ 109 done; \ 110 if test "$$dot_seen" = "no"; then \ 111 $(MAKE) "$$target-local" || exit; \ 112 fi 113 114clean-recursive-with-twist: 115 $(MAKE) clean-recursive LOCAL_SUBDIRS='$(CLEAN_FIRST_SUBDIRS) $(filter-out $(CLEAN_FIRST_SUBDIRS),$(LOCAL_SUBDIRS))' 116 117all-local: $(srcdir)/configure $(LOCAL_BUILT_FILES) $(INSTALLED_BUILT_FILES) 118 119install-local: install-icu install-manx 120 121install-icu: $(INSTALLED_BUILT_FILES) 122 @$(MKINSTALLDIRS) $(DESTDIR)$(pkgdatadir)/config 123 @$(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir) 124 @$(MKINSTALLDIRS) $(DESTDIR)$(bindir) 125 @$(MKINSTALLDIRS) $(DESTDIR)$(sbindir) 126 $(INSTALL_DATA) $(top_srcdir)/config/mh-linux $(DESTDIR)$(pkgdatadir)/config/mh-linux 127 $(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs 128 $(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html 129 $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config 130 $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc 131 cd $(DESTDIR)$(pkglibdir)/..; \ 132 $(RM) current && ln -s $(VERSION) current; \ 133 $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc 134 135ifeq ($(DOXYGEN),) 136install-doc: 137else 138install-doc: doc 139 $(RM) -r $(DESTDIR)$(docdir)/$(docsubdir) 140 $(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(docsubdir) 141 $(INSTALL_DATA) doc/html/* $(DESTDIR)$(docdir)/$(docsubdir) 142endif 143 144$(DESTDIR)$(pkglibdir)/%: $(top_srcdir)/../data/% 145 $(INSTALL_DATA) $< $@ 146 147# Build the tests, but don't run them. 148tests: all 149 $(MAKE) -C $(top_builddir)/test 150 151dist-local: 152 153clean-local: 154 test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) 155 $(RMV) Doxyfile doc 156 157distclean-local: clean-local 158 $(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config 159 $(RMV) config.cache config.log config.status 160 $(RMV) Makefile config/Makefile icudefs.mk $(LIBDIR) $(BINDIR) 161 162check-local: 163 164#$(srcdir)/configure : $(srcdir)/configure.in $(top_srcdir)/aclocal.m4 165# cd $(srcdir) && $(AUTOCONF) 166 167icudefs.mk: $(srcdir)/icudefs.mk.in $(top_builddir)/config.status 168 cd $(top_builddir) \ 169 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 170 171Makefile: $(srcdir)/Makefile.in icudefs.mk $(top_builddir)/config.status 172 cd $(top_builddir) \ 173 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 174 175$(top_builddir)/config/Makefile.inc: $(srcdir)/config/Makefile.inc.in $(top_builddir)/config.status 176 cd $(top_builddir) \ 177 && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status 178 179$(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config/icu-config-top $(top_srcdir)/config/icu-config-bottom $(top_builddir)/config/Makefile.inc $(top_srcdir)/config/mh-linux $(top_srcdir)/config/make2sh.sed 180 -$(RMV) $@ 181 $(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@ 182 chmod u+w $@ 183 @echo "# Following from $(top_srcdir)/config/mh-linux" >> $@ 184 sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@ 185 sed -f $(top_srcdir)/config/make2sh.sed < $(top_srcdir)/config/mh-linux | grep -v '#M#' | uniq >> $@ 186 cat $(top_srcdir)/config/icu-config-bottom >> $@ 187 echo "# Rebuilt on "`date` >> $@ 188 chmod u-w $@ 189 190config.status: $(srcdir)/configure $(srcdir)/common/unicode/uversion.h 191 @echo 192 @echo 193 @echo "*** config.status has become stale ***" 194 @echo " 'configure' and/or 'uversion.h' have changed, please" 195 @echo " do 'runConfigureICU' (or 'configure') again, as per" 196 @echo " the readme.html." 197 @echo 198 @echo 199 exit 1 200 201 202install-manx: $(MANX_FILES) 203 $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION) 204 $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION) 205 206config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in 207 cd $(top_builddir) \ 208 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 209 210