| # |
| # Copyright (c) 2002 Silicon Graphics, Inc. All Rights Reserved. |
| # |
| # This program is free software; you can redistribute it and/or modify it |
| # under the terms of version 2 of the GNU General Public License as |
| # published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it would be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| # |
| # Further, this software is distributed without any warranty that it is |
| # free of the rightful claim of any third person regarding infringement |
| # or the like. Any license provided herein, whether implied or |
| # otherwise, applies only to this software file. Patent licenses, if |
| # any, provided herein do not apply to combinations of this program with |
| # other software, or any other product whatsoever. |
| # |
| # You should have received a copy of the GNU General Public License along |
| # with this program; if not, write the Free Software Foundation, Inc., 59 |
| # Temple Place - Suite 330, Boston MA 02111-1307, USA. |
| # |
| # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, |
| # Mountain View, CA 94043, or: |
| # |
| # http://www.sgi.com |
| # |
| # For further information regarding this notice, see: |
| # |
| # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ |
| # |
| |
| BUILDRULES = $(TOPDIR)/include/buildrules |
| |
| # LCFLAGS, LLDFLAGS, LLDLIBS, LSRCFILES and LDIRT may be specified in |
| # user Makefiles. Note: LSRCFILES is anything other than Makefile, $(CFILES) |
| # $(CXXFILES), or $(HFILES) and is used to construct the manifest list |
| # during the "dist" phase (packaging). |
| |
| LDFLAGS = $(LLDFLAGS) |
| LDLIBS = $(LLDLIBS) $(MALLOCLIB) |
| |
| MAKEOPTS = --no-print-directory |
| SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES) |
| DIRT = $(LDIRT) dep dep.bak $(OBJECTS) $(LTOBJECTS) *.[1-9].gz \ |
| $(LTCOMMAND) $(LTLIBRARY) |
| |
| OBJECTS = $(ASFILES:.s=.o) \ |
| $(CFILES:.c=.o) \ |
| $(LFILES:.l=.o) \ |
| $(YFILES:%.y=%.tab.o) |
| |
| INSTALL = $(TOPDIR)/install-sh -o root -g root |
| |
| SHELL = /bin/sh |
| IMAGES_DIR = $(TOPDIR)/all-images |
| DIST_DIR = $(TOPDIR)/dist |
| |
| CCF = $(CC) $(CFLAGS) $(CPPFLAGS) |
| MAKEF = $(MAKE) $(MAKEOPTS) |
| CXXF = $(CXX) $(CXXFLAGS) |
| LDF = $(LD) $(LDFLAGS) |
| |
| # For libtool. |
| LIBNAME = $(basename $(LTLIBRARY)) |
| LTOBJECTS = $(OBJECTS:.o=.lo) |
| LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) |
| |
| LTLINK = $(LIBTOOL) --mode=link $(CC) |
| LTEXEC = $(LIBTOOL) --mode=execute |
| LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) |
| LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF) -D_REENTRANT -fno-strict-aliasing |
| |
| ifeq ($(ENABLE_SHARED),yes) |
| LTLDFLAGS += -rpath $(PKG_SLIB_DIR) |
| LTLDFLAGS += -version-info $(LTVERSION) |
| endif |
| |
| ifeq ($(ENABLE_SHARED),yes) |
| INSTALL_LTLIB = \ |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ |
| ../$(INSTALL) -m 755 -d $(PKG_SLIB_DIR); \ |
| ../$(INSTALL) -m 644 -T so_dot_version $(LIBNAME).lai $(PKG_SLIB_DIR); \ |
| test "$(PKG_DISTRIBUTION)" = debian || \ |
| ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_SLIB_DIR) |
| endif |
| |
| # Libtool thinks the static and shared libs should be in the same dir, so |
| # make the static lib appear in the place we chose as rpath (using the two |
| # symlinks below). |
| # Other things want the shared libs to appear in /usr/lib, else they'll |
| # link with the static libs there. So, another symlink to get the .so into |
| # /usr/lib. |
| ifeq ($(ENABLE_SHARED),yes) |
| INSTALL_LTLIB_DEV = \ |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ |
| ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ |
| ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ |
| ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ |
| ../$(INSTALL) -m 755 -d $(PKG_SLIB_DIR); \ |
| ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_SLIB_DIR); \ |
| ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_SLIB_DIR)/$(LIBNAME).a; \ |
| ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_SLIB_DIR)/$(LIBNAME).la; \ |
| ../$(INSTALL) -S $(PKG_SLIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so |
| else |
| INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) |
| endif |
| |
| INSTALL_LTLIB_STATIC = \ |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ |
| ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ |
| ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR) |
| |
| INSTALL_MAN = \ |
| @for d in $(MAN_PAGES); do \ |
| first=true; \ |
| for m in `$(AWK) \ |
| '/^\.S[h|H] NAME/ {ok=1; next} ok {print; exit}' $$d \ |
| | $(SED) \ |
| -e 's/^\.Nm //' -e 's/,/ /g' -e 's/\\-.*//' \ |
| -e 's/\\\f[0-9]//g' -e 's/ / /g;q'`; \ |
| do \ |
| [ -z "$$m" -o "$$m" = "\\" ] && continue; \ |
| t=$(MAN_DEST)/$$m.$(MAN_SECTION); \ |
| if $$first; then \ |
| if $(HAVE_ZIPPED_MANPAGES); then \ |
| $(ZIP) -9 -c $$d > $$d.gz; _sfx=.gz; \ |
| fi; \ |
| u=$$m.$(MAN_SECTION)$$_sfx; \ |
| echo $(INSTALL) -m 644 $${d}$$_sfx $${t}$$_sfx;\ |
| $(INSTALL) -m 644 $${d}$$_sfx $${t}$$_sfx; \ |
| else \ |
| echo $(INSTALL) -S $$u $${t}$$_sfx; \ |
| $(INSTALL) -S $$u $${t}$$_sfx; \ |
| fi; \ |
| first=false; \ |
| done; \ |
| done |
| |
| SUBDIRS_MAKERULE = \ |
| @for d in $(SUBDIRS) ""; do \ |
| if test -d "$$d" -a ! -z "$$d"; then \ |
| $(ECHO) === $$d ===; \ |
| $(MAKEF) -C $$d $@ || exit $$?; \ |
| fi; \ |
| done |
| |
| MAN_MAKERULE = \ |
| @for f in *.[12345678] ""; do \ |
| if test ! -z "$$f"; then \ |
| $(ZIP) --best -c < $$f > $$f.gz; \ |
| fi; \ |
| done |
| |
| DIST_MAKERULE = \ |
| $(MAKEF) -C build dist |
| |
| SOURCE_MAKERULE = \ |
| @test -z "$$DIR" && DIR="."; \ |
| for f in $(SRCFILES) ""; do \ |
| if test ! -z "$$f"; then $(ECHO) $$DIR/$$f; fi;\ |
| done; \ |
| for d in `echo $(SUBDIRS)` ; do \ |
| if test -d "$$d" -a ! -z "$$d"; then \ |
| $(MAKEF) DIR=$$DIR/$$d -C $$d $@ || exit $$?; \ |
| fi; \ |
| done |