| # SPDX-License-Identifier: GPL-2.0 | |
| # Copyright (c) 2002-2003 Silicon Graphics, Inc. All Rights Reserved. | |
| # | |
| 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 += $(LOADERFLAGS) $(LLDFLAGS) | |
| LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB) | |
| MAKEOPTS = --no-print-directory Q=$(Q) | |
| SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES) | |
| DEPDIRT = dep dep.bak | |
| MANDIRT = *.[1-9].gz | |
| PODIRT = *.tmpo *.mo | |
| CDIRT = $(OBJECTS) $(LTOBJECTS) $(LTCOMMAND) $(LTLIBRARY) | |
| DIRT = $(LDIRT) $(DEPDIRT) $(MANDIRT) $(PODIRT) $(CDIRT) | |
| OBJECTS = $(ASFILES:.s=.o) \ | |
| $(CFILES:.c=.o) \ | |
| $(LFILES:.l=.o) \ | |
| $(YFILES:%.y=%.tab.o) | |
| INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) | |
| IMAGES_DIR = $(TOPDIR)/all-images | |
| DIST_DIR = $(TOPDIR)/dist | |
| CCF = $(CC) $(CFLAGS) $(CPPFLAGS) | |
| MAKEF = $(MAKE) $(MAKEOPTS) | |
| CXXF = $(CXX) $(CXXFLAGS) | |
| # For libtool. | |
| LIBNAME = $(basename $(LTLIBRARY)) | |
| LTOBJECTS = $(OBJECTS:.o=.lo) | |
| LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) | |
| LTLINK = $(LIBTOOL) --quiet --tag=CC --mode=link $(CC) | |
| LTEXEC = $(LIBTOOL) --quiet --mode=execute | |
| LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) | |
| LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) | |
| ifeq ($(ENABLE_SHARED),yes) | |
| LTLDFLAGS += -rpath $(PKG_LIB_DIR) | |
| LTLDFLAGS += -version-info $(LTVERSION) | |
| endif | |
| ifeq ($(ENABLE_SHARED),yes) | |
| INSTALL_LTLIB = \ | |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ | |
| ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ | |
| ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ | |
| ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_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_DEVLIB_DIR); \ | |
| ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_DEVLIB_DIR); \ | |
| ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \ | |
| ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ | |
| ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ | |
| ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ | |
| ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ | |
| ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_DEVLIB_DIR)/$(LIBNAME).so | |
| else | |
| INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) | |
| endif | |
| INSTALL_LTLIB_STATIC = \ | |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ | |
| ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \ | |
| ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_DEVLIB_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 | |
| ifeq ($(ENABLE_GETTEXT),yes) | |
| INSTALL_LINGUAS = \ | |
| @for l in $(LINGUAS) ""; do \ | |
| if test -f "$$l.mo" ; then \ | |
| ldir=$(PKG_LOCALE_DIR)/$$l/LC_MESSAGES; \ | |
| $(INSTALL) -m 755 -d $$ldir; \ | |
| $(INSTALL) -m 644 $$l.mo $$ldir/$(PKG_NAME).mo; \ | |
| fi; \ | |
| done | |
| endif | |
| 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 \ | |
| test -z "$$f" && break; \ | |
| test -L "$$f" || $(ECHO) $$DIR/$$f; \ | |
| done; \ | |
| for d in `echo $(SUBDIRS)` ""; do \ | |
| test -z "$$d" && break; \ | |
| if test -d "$$d"; then \ | |
| $(MAKEF) DIR=$$DIR/$$d -C $$d $@ || exit $$?; \ | |
| fi; \ | |
| done |