| # 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 += $(SANITIZER_LDFLAGS) $(LOADERFLAGS) $(LLDFLAGS) |
| LTLDFLAGS += $(LOADERFLAGS) |
| LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB) |
| |
| MAKEOPTS = --no-print-directory Q=$(Q) |
| SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES) |
| SRCFILES += $(QAHFILES) |
| |
| DEPDIRT = dep dep.bak |
| MANDIRT = *.[1-9].gz |
| PODIRT = *.tmpo *.mo |
| CDIRT = $(OBJECTS) $(LTOBJECTS) $(LTCOMMAND) $(LTLIBRARY) |
| DIRT = $(LDIRT) $(DEPDIRT) $(MANDIRT) $(PODIRT) $(CDIRT) |
| LIBDIRT = .libs |
| DIRDIRT = $(LDIRDIRT) $(LIBDIRT) |
| |
| 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_ROOT_LIB_DIR) |
| LTLDFLAGS += -version-info $(LTVERSION) |
| endif |
| |
| ifeq ($(ENABLE_SHARED),yes) |
| INSTALL_LTLIB = \ |
| cd $(TOPDIR)/$(LIBNAME)/.libs; \ |
| ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ |
| ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ |
| ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_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_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_ROOT_LIB_DIR); \ |
| ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ |
| if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ |
| "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ |
| ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ |
| ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ |
| ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ |
| fi |
| 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} /^\.so/ {printf("so %s\n", FILENAME); exit} ok {print; exit}' $$d \ |
| | $(SED) \ |
| -e 's/^\.Nm //' -e 's/,/ /g' -e 's/\\-.*//' \ |
| -e 's/^so \([_a-zA-Z]*\)\.[0-9]/\1/g' \ |
| -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 |