ACIL FM
Dark
Refresh
Current DIR:
/usr/include/pcp
/
usr
include
pcp
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
builddefs
30.24 MB
chmod
View
DL
Edit
Rename
Delete
buildrules
5.03 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/include/pcp/builddefs
# # Copyright (c) 2012-2022 Red Hat. # Copyright (c) 2008 Aconex. All Rights Reserved. # Copyright (c) 2000,2003,2004 Silicon Graphics, Inc. All Rights Reserved. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # Common gmake macros for building # # src/include/builddefs. Generated from builddefs.in by configure. # ifndef _BUILDDEFS_INCLUDED_ _BUILDDEFS_INCLUDED_ = 1 ifndef _PCP_CONF_INCLUDED_ _PCP_CONF_INCLUDED_ = 1 include $(PCP_DIR)/etc/pcp.conf endif # General package information PACKAGE_VERSION ?= 6.3.7 PACKAGE_MAJOR ?= 6 PACKAGE_MINOR ?= 3 PACKAGE_REVISION ?= 7 PACKAGE_BUILD ?= 5 PACKAGE_NAME ?= pcp PACKAGE_CONFIGURE ?= --with-infiniband=yes --with-python=no --with-dstat-symlink=yes --with-perfevent=yes --with-pmdagfs2=yes --with-pmdastatsd=yes --with-pmdabcc=yes --with-pmdabpf=yes --with-pmdabpftrace=yes --with-pmdajson=yes --with-pmdamongodb=yes --with-pmdamysql=yes --with-pmdanutcracker=no --with-pmdasnmp=yes --enable-multilib=yes PACKAGE_DISTRIBUTION ?= redhat SGI_CHROOT_BUILD ?= 0 SGI_ISSP_BUILD ?= 0 # see build/containers/GNUlocalrules and build/containers/*/GNUmakefile CONTAINER_VERSION = $(PACKAGE_VERSION)-$(PACKAGE_BUILD) CONTAINER_ARCH = $(shell uname -p) BUILDRULES = $(PCP_INC_DIR)/buildrules # LCFLAGS, LLDFLAGS, LLDLIBS, LDIRT may be specified in local makefiles. # turn on all warnings by default ifeq "yes" "yes" WARN_OFF = -Wall else WARN_OFF = endif LIBPCP_ABIDIR ?= src PCPLIB_LDFLAGS = -L$(PCP_LIB_DIR) # backward compatibility PCP_LIBS = $(PCPLIB_LDFLAGS) # platform-specific CFLAGS, LDLIBS, and shared library extension # # Note: # Need PCFLAGS setting here to match the CFLAGS settings in # ../../configure.ac (likewise for PLDFLAGS and LDFLAGS). # TARGET_OS = linux CROSS_COMPILING = no CASE_INSENSITIVE_FS = no C99_CFLAGS = --std=c99 PCFLAGS = -fPIC -fno-strict-aliasing -D_GNU_SOURCE -Wshadow -Wno-array-bounds PLDFLAGS = -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ifneq (, $(filter linux kfreebsd gnu, $(TARGET_OS))) DSOSUFFIX = so endif ifeq "$(TARGET_OS)" "darwin" DSOSUFFIX = dylib CASE_INSENSITIVE_FS = yes endif ifeq "$(TARGET_OS)" "mingw" DSOSUFFIX = dll EXECSUFFIX = .exe SHELLSUFFIX = .sh PLDLIBS = -lwsock32 -liphlpapi endif ifeq "$(TARGET_OS)" "solaris" PLDFLAGS += -fPIC PLDLIBS = -lnsl -lsocket -lresolv -ldl -lposix4 DSOSUFFIX = so endif ifeq "$(TARGET_OS)" "aix" DSOSUFFIX = so # -qcpluscmt # allow C++-style // as comment preamble # -brtl # use run-time linker # -bnoipath # do not use path to DSOs from the build, use default search path # rules # (and does not accept -Wall as a valid option) PLDFLAGS += -brtl -bnoipath WARN_OFF = endif ifeq "$(TARGET_OS)" "freebsd" DSOSUFFIX = so endif ifeq "$(TARGET_OS)" "netbsd" DSOSUFFIX = so LDFLAGS += -Wl,-rpath=/usr/pkg/lib endif ifeq "$(TARGET_OS)" "openbsd" DSOSUFFIX = so endif CFLAGS_DEV = CFLAGS_ABI = CFLAGS_OPT = -O2 -g CFLAGS_SANITIZER = CFLAGS += -I$(PCP_INC_DIR)/.. -I$(PCP_INC_DIR) \ -DPCP_VERSION=\"$(PCP_VERSION)\" \ $(PCFLAGS) $(LCFLAGS) $(WARN_OFF) $(CFLAGS_OPT) $(CFLAGS_SANITIZER) $(CFLAGS_DEV) PIECFLAGS = -fPIE PIELDFLAGS = -pie -Wl,-z,relro -Wl,-z,now INVISIBILITY = -fvisibility=hidden # hide shared library symbols AVAHICFLAGS = -D_REENTRANT LZMACFLAGS = LIBUVCFLAGS = OPENSSLCFLAGS = SASLCFLAGS = CMOCKACFLAGS = LDFLAGS += $(PLDFLAGS) $(WARN_OFF) $(PCP_LIBS) $(LLDFLAGS) SRCFILES = GNUmakefile $(HFILES) $(CFILES) $(CXXFILES) $(MFILES) \ $(LSRCFILES) $(LFILES) $(YFILES) $(PYFILES) GPERFTOOLS_LIBS = # tcmalloc of gperftools must be linked last LDLIBS = $(LLDLIBS) $(PLDLIBS) $(GPERFTOOLS_LIBS) MAKEOPTS = --no-print-directory ifdef PROJECT QTDIRDIRT = build debug release .obj .ui .moc .qrc *.xcodeproj *.app QTDIRT = *.a *.o ui_* moc_* qrc_* Info.plist Makefile* object_script.* \ .qmake.stash endif DEPDIRT = dep dep.bak MANDIRT = *.[1-9].gz *.[1-9].bz2 *.[1-9].lzma *.[1-9].xz *.[1-9].tmp LIBDIRT = $(LIBTARGET) $(STATICLIBTARGET) CDIRT = $(OBJECTS) $(CMDTARGET) $(CXXMDTARGET) DIRT = $(LDIRT) $(DEPDIRT) $(MANDIRT) $(QTDIRT) $(CDIRT) $(LIBDIRT) DIRDIRT = $(LDIRDIRT) $(QTDIRDIRT) OBJECTS = $(ASFILES:.s=.o) \ $(CFILES:.c=.o) \ $(CXXFILES:.cxx=.o) \ $(FFILES:.f=.o) \ $(LFILES:.l=.o) \ $(RLFILES:.rl=.o) \ $(YFILES:%.y=%.tab.o) #NB: don't override $(MAKE); gnumake sets it well, propagating -j etc. #MAKE = /usr/bin/gmake AR = /usr/bin/gcc-ar CC = gcc CXX = g++ LD = /usr/bin/ld AWK = /usr/bin/gawk --posix SED = /usr/bin/sed CPP = gcc -E LEX = flex YACC = bison RAGEL = ECHO = /usr/bin/echo LN_S = ln -s GREP = grep GIT = git # man-lint should not break the build (-f) MANLINT = $(TOPDIR)/scripts/man-lint -f PYLINT = /bin/true --rcfile=$(TOPDIR)/.pylintrc --output-format=colorized PYTHON = PYTHON3 = /usr/bin/python3 DTRACE = dtrace ifeq "$(TARGET_OS)" "freebsd" QMAKE = /usr/lib64/qt5/bin/qmake else QMAKE = QT_SELECT=5 /usr/lib64/qt5/bin/qmake endif INSTALL_SH = $(PCP_BINADM_DIR)/install-sh INSTALL = $(INSTALL_SH) -o $(PCP_USER_INSTALL) -g $(PCP_GROUP_INSTALL) CCF = $(CC) $(CFLAGS) CXXF = $(CXX) $(CFLAGS) $(CXXFLAGS) # NB: don't use $(MAKEF), since that suppresses gnumake's subdir parallelization #MAKEF = $(MAKE) $(MAKEOPTS) LDF = $(LD) $(LDFLAGS) MAKEDEPEND = /usr/bin/true ifeq "$(TARGET_OS)" "freebsd" # gmake on FreeBSD has a strange default rule that passes insufficient # flags to cc/ld for the link step. This change prevents errors like # undefined reference to `__stack_chk_fail_local' # LDFLAGS += $(CFLAGS) endif ZIP = /usr/bin/gzip BZIP2 = /usr/bin/bzip2 LZMA = /usr/freeware/bin/lzma XZ = /usr/bin/xz TAR = /usr/bin/gtar RPMPROG = /usr/bin/rpmbuild HDIUTIL = MKINSTALLP = DLLTOOL = RPMBUILD= /usr/bin/rpmbuild RPM = /usr/bin/rpm POD2MAN = /usr/bin/pod2man DPKG = MAKEPKG = GENPMDA = $(PCP_BIN_DIR)/genpmda PKGMK = MD5SUM = /usr/bin/md5sum INKSCAPE = CLANG = /usr/bin/clang LLVM_STRIP = /usr/bin/llvm-strip BPFTOOL = $(TOPDIR)/vendor/github.com/libbpf/bpftool/src/bpftool PMDABPF_ARCH = x86 PMDABPF_VMLINUXH = /builddir/build/BUILD/pcp-6.3.7/vendor/github.com/iovisor/bcc/libbpf-tools/x86/vmlinux.h PMDABPF_MODULES = biolatency.so runqlat.so mountsnoop.so oomkill.so bashreadline.so biolatency.so execsnoop.so exitsnoop.so fsslower.so opensnoop.so runqlat.so statsnoop.so tcpconnect.so tcpconnlat.so vfsstat.so biosnoop.so netatop.so HAVE_MANPAGES = true HAVE_GZIPPED_MANPAGES = true HAVE_BZIP2ED_MANPAGES = false HAVE_LZMAED_MANPAGES = false HAVE_XZED_MANPAGES = false PCP_PREFIX = /usr PCP_MAN_DIR = /usr/share/man PCP_HTML_DIR = /usr/share/doc/pcp-doc/html PCP_ICONS_DIR = /usr/share/pcp-gui/pixmaps PCP_DESKTOP_DIR = /usr/share/applications PCP_PMNS_DIR = /var/lib/pcp/pmns PCP_PMNSADM_DIR = /usr/libexec/pcp/pmns PCP_SELINUX_DIR = /usr/share/selinux PCP_BASHSHARE_DIR = /usr/share/bash-completion NEED_OLD_TBL_HEADER = false RDYNAMIC_FLAG = -rdynamic QT_RELEASE = release QT_VERSION = 5 CLANG_MAJOR_VERSION = 20 # configuration state affecting the entire build ENABLE_MULTILIB = true ENABLE_SHARED = false ENABLE_SECURE = true ENABLE_PROBES = true ENABLE_AVAHI = true ENABLE_DSTAT = true ENABLE_QT = true ENABLE_QT3D = false ENABLE_PYTHON2 = false ENABLE_PYTHON3 = true ENABLE_SYSTEMD = true ENABLE_SELINUX = true ENABLE_DECOMPRESSION = true ENABLE_LZMA = true # for code supporting any modern version of perl HAVE_PERL = true # for code supporting both/either python2 and/or python3 HAVE_PYTHON = true # python dependent bits HAVE_PYTHON_SIX = true HAVE_PYTHON_REQUESTS = true HAVE_PYTHON_SETUPTOOLS = true HAVE_PYTHON_JSONPOINTER = true HAVE_PYTHON_ORDEREDDICT = true HAVE_PYTHON_INFLUXDB = true HAVE_PYTHON_OPENPYXL = false HAVE_PYTHON_PYARROW = false HAVE_PYTHON_BPF = false # for desktop icons in a variety of img sizes HAVE_HICOLOR_ICONS = true # additional libraries needed for particular functions LIB_FOR_ATOMIC = LIB_FOR_AVAHI = -lavahi-common -lavahi-client LIB_FOR_BASENAME = LIB_FOR_CHAN = -lchan LIB_FOR_CURSES = LIB_FOR_DLOPEN = LIB_FOR_HDR_HISTOGRAM = -lz -lhdr_histogram LIB_FOR_LZMA = -llzma LIB_FOR_MATH = -lm LIB_FOR_PTHREADS = LIB_FOR_READLINE = -lreadline LIB_FOR_REGEX = LIB_FOR_RT = LIB_FOR_BACKTRACE = HAVE_LIBUV = true LIB_FOR_LIBUV = -luv HAVE_LIBINIH = false LIB_FOR_INIH = HAVE_LIBBPF = true LIBBPF_VERSION = 1.5.0 LIB_FOR_LIBBPF = -lbpf HAVE_LIBELF = true LIB_FOR_LIBELF = -lelf HAVE_NCURSES = true LIB_FOR_NCURSES = -lncurses -ltinfo HAVE_NCURSESW = true LIB_FOR_NCURSESW = -lncursesw -ltinfo HAVE_DEVMAPPER = true LIB_FOR_DEVMAPPER = -ldevmapper HAVE_CMOCKA = false LIB_FOR_CMOCKA = HAVE_SASL = true LIB_FOR_LIBSASL2 = -lsasl2 HAVE_OPENSSL = true LIB_FOR_OPENSSL = -lssl -lcrypto HAVE_ZLIB = true LIB_FOR_ZLIB = -lz HAVE_LIBDRM = @HAVE_LIBDRM@ LIB_FOR_LIBDRM = -ldrm CFLAGS_FOR_LIBDRM = -I/usr/include/libdrm -I/usr/include/valgrind HAVE_LIBDRM_AMDGPU = @HAVE_LIBDRM_AMDGPU@ LIB_FOR_LIBDRM_AMDGPU = -ldrm_amdgpu CFLAGS_FOR_LIBDRM_AMDGPU = -I/usr/include/libdrm -I/usr/include/valgrind # configuration state for optional performance domains SYSTEMD_CFLAGS = SYSTEMD_LIBS = -lsystemd PFM_LIBS = -lpfm IB_LIBS = -libmad -libumad PMDA_BCC = true PMDA_BPF = true PMDA_BPFTRACE = true PMDA_JSON = true PMDA_GFS2 = true PMDA_STATSD = true PMDA_LIBVIRT = true PMDA_SYSTEMD = true PMDA_PERFEVENT = true PMDA_INFINIBAND = true PMDA_OPENMETRICS = true PMDA_ELASTICSEARCH = true PMDA_MYSQL = true PMDA_ORACLE = true PMDA_MONGODB = true PMDA_POSTGRESQL = true PMDA_SNMP = true PMDA_NGINX = true PMDA_ACTIVEMQ = true PMDA_POSTFIX = true PMDA_BIND2 = true PMDA_NUTCRACKER = false PMDA_LIO = true PMDA_MSSQL = true PMDA_RESCTRL = true PMDA_AMDGPU = true SHELL = /bin/sh IMAGES_DIR = $(TOPDIR)/all-images DIST_DIR = $(TOPDIR)/dist # env vars to be set before you can run a PCP binary in the build # environment ... needed for tools like newhelp # # default, then special case for different platforms # RUN_IN_BUILD_ENV = PCP_CONF=$(TOPDIR)/src/include/pcp.conf PCP_ALT_CPP=$(TOPDIR)/src/pmcpp/pmcpp.static$(EXECSUFFIX) # when cross-compiling, we cannot use RUN_IN_BUILD_ENV, so any binaries # from PCP we need in the build must be installed on the build machine. # ifeq "$(CROSS_COMPILING)" "yes" NEWHELP = . $$PCP_DIR/etc/pcp.conf && $$PCP_BINADM_DIR/newhelp PMIECONF = . $$PCP_DIR/etc/pcp.conf && $$PCP_BIN_DIR/pmieconf PMGENMAP = . $$PCP_DIR/etc/pcp.conf && $$PCP_BIN_DIR/pmgenmap PMCPP = . $$PCP_DIR/etc/pcp.conf && $$PCP_BINADM_DIR/pmcpp else NEWHELP = $(RUN_IN_BUILD_ENV) $(TOPDIR)/src/newhelp/newhelp.static$(EXECSUFFIX) PMIECONF = $(RUN_IN_BUILD_ENV) $(TOPDIR)/src/pmieconf/pmieconf.static$(EXECSUFFIX) PMGENMAP = $(RUN_IN_BUILD_ENV) sh ./pmgenmap.sh PMCPP = $(RUN_IN_BUILD_ENV) $(TOPDIR)/src/pmcpp/pmcpp.static$(EXECSUFFIX) endif SUBDIRS_MAKERULE = \ +for d in `echo $^ `; do \ if test -d "$$d" -a -f "$$d/GNUmakefile"; then \ $(ECHO) === $$d ===; \ $(MAKE) $(MAKEOPTS) -C $$d $@ || exit $$?; \ fi; \ done # special variant of SUBDIRS_MAKERULE when running QA # QA_SUBDIRS_MAKERULE = \ +@for d in `echo $^ `; do \ if test -d "$$d" ; then \ if test -f "$$d/GNUmakefile.install"; then \ $(MAKE) --silent -C $$d -f GNUmakefile.install $@ || exit $$?; \ else \ $(MAKE) --silent -C $$d $@ || exit $$?; \ fi; \ fi; \ done # prepare symbols file for the GNU toolchain (linker) for DSO PMDAs VERSION_SCRIPT_MAKERULE = \ @rm -f $@; \ echo "$(DOMAIN) {" >$@; \ echo " global: $(PMDAINIT);" >>$@; \ echo " local: *;" >>$@; \ echo "};" >>$@; \ # prepare symbols file for other platforms toolchain for shared libs # (convert one canonical format - GNU toolchain style - into others) ifeq "$(TARGET_OS)" "solaris" EXPORTS_MAKERULE = \ $(AWK) <$< >$@ '\ BEGIN { print "$$mapfile_version 2"; print } \ /\{$$/ { print "SYMBOL_VERSION", $$0; next } \ { print }' else EXPORTS_MAKERULE = endif # prepare domain.h used during the PMDA build process for each PMDA DOMAIN_MAKERULE = \ @rm -f $@; \ echo "/*" >$@; \ echo " * built from $<" >>$@; \ echo " */" >>$@; \ $(AWK) <$< '\ $$1=="\#define" && $$2 == "$(DOMAIN)" {\ print "\#define $(DOMAIN) " $$3 >>"$@"; found++ \ }\ END {\ if (found == 0) { \ print "Botch: no define for domain $(DOMAIN) in $<"; \ system("rm '$@'"); \ exit(1) \ }\ if (found > 1) { \ print "Botch: multiple defines for domain $(DOMAIN) in $<";\ print "... see $@ for details"; \ system("rm '$@'"); \ exit(1) \ }\ exit(0) \ }' || ( rm -f $@ && false ) DOMAIN_PERLRULE = \ @export perldomain=`sed -n \ -e '/PCP::PMDA->new/s/[^0-9]*$$//' \ -e '/PCP::PMDA->new/s/^[^0-9]*//p' pmda$(IAM).pl | \ $(AWK) '{ print $$NF }'`; \ $(AWK) <$< '\ BEGIN {\ domain = toupper("$(IAM)") \ }\ $$1=="\#define" && $$2 == domain { \ pmd=$$3; found++ \ }\ END {\ if (found == 0) {\ print "Botch: no define for domain " domain " in $<"; \ exit(1) \ }\ if (found > 1) {\ print "Botch: multiple defines of domain " domain " in $<";\ exit(1) \ }\ if (pmd != "'"$$perldomain"'") {\ print "Botch: domain number in ../../pmns/stdpmid (" pmd ") does not match domain number in Perl source ("'"$$perldomain"'")"; \ exit(1) \ }\ exit(0) \ }' DOMAIN_PYTHONRULE = \ @export pythondomain=`sed -n \ -e '/PMDA(/s/[^0-9]*$$//' \ -e '/PMDA(/s/^[^0-9]*//p' $(PYSCRIPT) | \ $(AWK) '{ print $$NF }'`; \ $(AWK) <$< '\ BEGIN {\ domain = toupper("$(IAM)") \ }\ $$1=="\#define" && $$2 == domain { \ pmd=$$3; found++ \ }\ END {\ if (found == 0) {\ print "Botch: no define for domain " domain " in $<"; \ exit(1) \ }\ if (found > 1) {\ print "Botch: multiple defines of domain " domain " in $<";\ exit(1) \ }\ if (pmd != "'"$$pythondomain"'") {\ print "Botch: domain number in ../../pmns/stdpmid (" pmd ") does not match domain number in Python source ("'"$$pythondomain"'")"; \ exit(1) \ }\ exit(0) \ }' POD_OPTIONS = --section=$(MAN_SECTION) --release=$(PCP_VERSION) \ --center="Performance Co-Pilot" --date="Performance Co-Pilot" POD_MAKERULE = $(POD2MAN) $(POD_OPTIONS) $^ $@ ifeq "$(TARGET_OS)" "mingw" INSTALL_MAN = else INSTALL_MAN = \ test -z "$$MAN_PAGES" && MAN_PAGES="$(MAN_PAGES)"; \ if [ "$(HAVE_MANPAGES)" = "true" ] ; then \ for d in `echo $$MAN_PAGES`; do \ first=true; \ base=`echo $$d | sed -e 's/\.[0-9]//g'`; \ section=`echo $$d | sed -e 's/.*\.//g'`; \ $(AWK) <$$d ' \ BEGIN { state=0 } \ $$1==".ds" && $$2=="xM" { print $$3; next } \ $$1==".ds" { ds["\\\\\\*\\("$$2] = $$3 } \ $$1==".SH" && $$2=="NAME" { state=1; next } \ $$1==".SH" && state==1 { exit } \ /^\./ { next } \ state==1 { for (i=1;i<=NF;i++) { \ if ($$i=="\\-" || $$i=="-") exit; \ gsub ("\\\\f3", "", $$i); gsub ("\\\\f1.*", "", $$i); \ for ( d in ds ) sub (d, ds[d], $$i); \ print $$i \ } \ }' \ | while read m; do \ [ -z "$$m" -o "$$m" = "\\" ] && continue; \ t=$(PCP_MAN_DIR)/man$$section/$$m.$$section; \ if $$first; then \ _tfx= ;\ if $(NEED_OLD_TBL_HEADER) ; then \ $(SED) -e "1s/^'\\\\\"! tbl.*/'\\\\\" t/" $$d > $$d.tmp; _tfx=.tmp; \ fi; \ if $(HAVE_GZIPPED_MANPAGES) ; then \ $(ZIP) -c $$d$$_tfx > $$d.gz; _tfx=.gz; _sfx=.gz; \ fi; \ if $(HAVE_BZIP2ED_MANPAGES) ; then \ $(BZIP2) -c $$d$$_tfx > $$d.bz2; _tfx=.bz2; _sfx=.bz2; \ fi; \ if $(HAVE_LZMAED_MANPAGES) ; then \ $(LZMA) -c $$d$$_tfx > $$d.lzma; _tfx=.lzma; _sfx=.lzma; \ fi; \ if $(HAVE_XZED_MANPAGES) ; then \ $(XZ) -c $$d$$_tfx > $$d.xz; _tfx=.xz; _sfx=.xz; \ fi; \ u=$$m.$$section$$_sfx; \ echo $(INSTALL) -m 644 $${d}$$_tfx $${t}$$_sfx; \ $(INSTALL) -m 644 $${d}$$_tfx $${t}$$_sfx; \ else \ echo $(INSTALL) -S $$u $${t}$$_sfx; \ $(INSTALL) -S $$u $${t}$$_sfx; \ fi; \ first=false; \ done; \ done; \ fi endif MANPAGE_SUFFIX = _sfx=.gz; \ $(HAVE_BZIP2ED_MANPAGES) && _sfx=.bz2; \ $(HAVE_LZMAED_MANPAGES) && _sfx=.lzma; \ $(HAVE_XZED_MANPAGES) && _sfx=.xz; \ PERL_INSTALL_BASE = /usr PERL_INSTALLDIRS = vendor # MakeMaker INSTALL_BASE needs to be unset for proper vendor_perl paths to be used for --prefix=/usr; ifeq "$(PERL_INSTALL_BASE)" "/usr" ifneq "$(TARGET_OS)" "darwin" MAKEMAKER_EXTRA_OPTIONS= else MAKEMAKER_EXTRA_OPTIONS=INSTALL_BASE=$(PERL_INSTALL_BASE) INSTALLBASE=$(PERL_INSTALL_BASE) endif else MAKEMAKER_EXTRA_OPTIONS=INSTALL_BASE=$(PERL_INSTALL_BASE) INSTALLBASE=$(PERL_INSTALL_BASE) endif PERL_MAKE_MAKEFILE = \ export PCP_TOPDIR="`cd $(TOPDIR) && pwd`"; \ TARGET_OS="$(TARGET_OS)" CC="$(CC) $(CFLAGS_ABI)" perl Makefile.PL $(MAKEMAKER_EXTRA_OPTIONS) $(MAKEMAKER_OPTIONS) # Collect files from a Perl "make -f Makefile install" below # src/perl to build the PCP Perl packaging list, and also clean up # the installed files to remove unwanted files and make the DSO # executable # # Usage is $(call PERL_GET_FILELIST,target,listfile,base) # where target is the Makefile target (install or install_perl), # listfile is something like $(TOPDIR)/perl-pcp-pmda.list and # base is the DSO basename like PMDA. # # We need different versions for the different installation and # packaging regimes. # ifeq "$(PACKAGE_DISTRIBUTION)" "debian" # For Debian packaging, this is not needed PERL_GET_FILELIST = else ifeq "$(PACKAGE_DISTRIBUTION)" "gentoo" # Gentoo cannot rely on the .packlist files from the install, so create # a temporary pack.list file PERL_GET_FILELIST = \ $(PERLMAKE) -f Makefile $(1) DESTDIR="$$DIST_ROOT" \ | tee pack.list; \ sed -n -e '/\.bs$$/d' -e 's/\.[0-9]pm$$/&.gz/' -e "s@^Installing $$DIST_ROOT@@p" <pack.list >$(2) || exit 1; \ if [ -s $(2) ]; then rm -f pack.list; \ else echo "Arrgh ... no files to include in package via $(2), see pack.list"; exit 1; \ fi; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name perllocal.pod -exec rm -f '{}' ';' ; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name \*.bs -exec rm -f '{}' ';' ; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name $(3).so -exec chmod 755 '{}' ';' else ifeq "$(PACKAGE_DISTRIBUTION)" "freebsd" # FreeBSD Perl packaging is a broken mystery at this point in time # 1. there is no .packlist files being created # 2. $(PERLMAKE) -f Makefile install DESTDIR=$$DIST_ROOT does not work # so disable the packaging pro tem PERL_GET_FILELIST = else # Everyone else ... includes the RPM-based packaging platforms ifeq "$(PACKAGE_DISTRIBUTION)" "mandriva" man_suffix=lzma else man_suffix=gz endif PERL_GET_FILELIST = \ $(PERLMAKE) -f Makefile $(1) DESTDIR="$$DIST_ROOT"; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name .packlist -exec mv '{}' $(2) ';' ; \ if [ -s $(2) ] ; then \ $(MANPAGE_SUFFIX) \ if [ "$(HAVE_MANPAGES)" = "false" ] ; then \ sed -e '/.*man[1-9].*/d' -e '/.*3pm.*/d' $(2) >$(2).tmp; \ mv $(2).tmp $(2); \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name "*3pm*" -exec rm -rf '{}' ';' ; \ fi ;\ sed -n -e '/\.bs$$/d' -e 's/\.[0-9]pm$$/&'"$$_sfx/" -e "s@^$$DIST_ROOT@@p" $(2) >$(2).tmp; \ mv $(2).tmp $(2); \ else echo "Arrgh ... no files to include in package via $(2)"; exit 1; \ fi; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name perllocal.pod -exec rm -f '{}' ';' ; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name \*.bs -exec rm -f '{}' ';' ; \ find "$$DIST_ROOT/$(PERL_INSTALL_BASE)" -name $(3).so -exec chmod 755 '{}' ';' endif endif endif # Create perl manifest files explicitly for some distributions ifeq "$(shell [ '$(PACKAGE_DISTRIBUTION)' = cocoa \ -o '$(PACKAGE_DISTRIBUTION)' = macosx \ -o '$(PACKAGE_DISTRIBUTION)' = gentoo \ -o '$(PACKAGE_DISTRIBUTION)' = solaris \ -o '$(PACKAGE_DISTRIBUTION)' = freebsd \ -o '$(PACKAGE_DISTRIBUTION)' = openbsd \ ] && echo 1)" "1" # Gather installed Perl files before packaging PERL_INSTALL = \ if [ -n "$(DIST_MANIFEST)" ]; then \ if [ "`echo $(TOPDIR)/perl-pcp-*.list`" != "$(TOPDIR)/perl-pcp-*.list" ]; then \ cat $(TOPDIR)/perl-pcp-*.list | while read f; do \ bn=`basename $$f .gz`; \ dn=`dirname $$f`; \ $(INSTALL) -d $$dn || exit 1; \ src=`find */blib -name $$bn`; \ if [ -x $$src ] ; then mode=0755; else mode=0644; fi; \ $(INSTALL) -m $$mode $$src $$dn/$$bn || exit 1; \ done; \ fi; \ fi else PERL_INSTALL = endif # # Python platform-specific installation quirks PYTHON_PREFIX=/usr SETUP_PY_BUILD_OPTIONS = --include-dirs=$(TOPDIR)/src/include:$(TOPDIR)/src/include/pcp$(EXTRA_PY_INCLUDES) SETUP_PY_BUILD_OPTIONS += --library-dirs=$(TOPDIR)/src/libpcp/src:$(TOPDIR)/src/libpcp_pmda/src:$(TOPDIR)/src/libpcp_gui/src:$(TOPDIR)/src/libpcp_import/src:$(TOPDIR)/src/libpcp_mmv/src SETUP_PY_INSTALL_OPTIONS = --skip-build SETUP_PY_INSTALL_OPTIONS += --root="$${DIST_ROOT:-/}" ifeq "$(PYTHON_PREFIX)" "/usr" ifeq "$(PACKAGE_DISTRIBUTION)" "debian" SETUP_PY_INSTALL_OPTIONS += --install-layout=deb endif else SETUP_PY_INSTALL_OPTIONS += --prefix=$(PYTHON_PREFIX) endif ifeq "$(ENABLE_PYTHON3)" "true" SETUP_PY_BUILD_OPTIONS += -DENABLE_PYTHON3 endif # RPM byte-compiles and installs results in our DIST_ROOT, cater for this: ifeq "$(shell [ '$(TARGET_OS)' = linux -a '$(PACKAGE_DISTRIBUTION)' != gentoo \ ] && echo 1)" "1" # Linux and not Gentoo (which needs tarball packaging) PYTHON_INSTALL = \ cat $(TOPDIR)/python-pcp.list | while read f; do \ dirname $$f | $(SED) -e '/.*packages$$/d'; \ done | $(PCP_SORT_PROG) -u > $(TOPDIR)/python-pcp.list.rpm; \ $(AWK) '{print} /\.pyc$$/ {sub(/\.pyc$$/,".pyo"); print}' \ < $(TOPDIR)/python-pcp.list >> $(TOPDIR)/python-pcp.list.rpm; \ cat $(TOPDIR)/python-pcp.list.rpm | while read f; do \ touch "$${DIST_ROOT-/}$$f"; \ done PYTHON3_INSTALL = \ cat $(TOPDIR)/python3-pcp.list | while read f; do \ dirname $$f | $(SED) -e '/.*packages$$/d'; \ done | $(PCP_SORT_PROG) -u > $(TOPDIR)/python3-pcp.list.rpm; \ $(AWK) '{print} /\.pyc$$/ {sub(/\.pyc$$/,".pyo"); print}' \ < $(TOPDIR)/python3-pcp.list >> $(TOPDIR)/python3-pcp.list.rpm; \ $(AWK) '/\.pyc$$/ {sub(/\.pyc$$/,".opt-1.pyc"); print}' \ < $(TOPDIR)/python3-pcp.list >> $(TOPDIR)/python3-pcp.list.rpm; \ cat $(TOPDIR)/python3-pcp.list.rpm | while read f; do \ touch "$${DIST_ROOT-/}$$f"; \ done else ifeq "$(shell [ '$(PACKAGE_DISTRIBUTION)' = cocoa \ -o '$(PACKAGE_DISTRIBUTION)' = macosx \ -o '$(PACKAGE_DISTRIBUTION)' = gentoo \ -o '$(PACKAGE_DISTRIBUTION)' = solaris \ -o '$(PACKAGE_DISTRIBUTION)' = freebsd \ ] && echo 1)" "1" # Gather installed Python files before packaging # Lines in python-pcp.list are like this # /usr/lib/python2.7/site-packages/pcp.py # /usr/lib/python2.7/site-packages/pcp.pyc # /usr/lib/python2.7/site-packages/pmapi.so # /usr/lib/python2.7/site-packages/pcp-0.2-py2.7.egg-info # # Matching build artifacts are below src/python/build # PYTHON_INSTALL = \ if [ -n "$(DIST_MANIFEST)" ]; then \ cat $(TOPDIR)/python-pcp.list \ | while read f; do \ bn=`basename $$f`; \ dn=`dirname $$f`; \ pydir="$(TOPDIR)/src/python"; \ $(INSTALL) -d $$dn || exit 1; \ for src in `find $$pydir/build $$pydir/pcp.egg-info -name $$bn`; do \ $(INSTALL) $$src $$f || exit 1; \ done; \ done; \ fi PYTHON3_INSTALL = \ if [ -n "$(DIST_MANIFEST)" ]; then \ cat $(TOPDIR)/python3-pcp.list \ | while read f; do \ bn=`basename $$f`; \ dn=`dirname $$f`; \ pydir="$(TOPDIR)/src/python"; \ $(INSTALL) -d $$dn || exit 1; \ for src in `find $$pydir/build $$pydir/pcp.egg-info -name $$bn`; do \ $(INSTALL) $$src $$f || exit 1; \ done; \ done; \ fi else ifeq "$(shell [ '$(PACKAGE_DISTRIBUTION)' = openbsd \ ] && echo 1)" "1" # similar to above, but files already installed in DIST_ROOT so # just append to the manifest PYTHON_INSTALL = \ if [ -n "$(DIST_MANIFEST)" ]; then \ cat $(TOPDIR)/python-pcp.list \ | while read f; do \ bn=`basename $$f`; \ dn=`dirname $$f`; \ $(INSTALL) -d $$dn || exit 1; \ src=`find "$(DIST_ROOT)/usr/lib" -name $$bn`; \ $(INSTALL) $$src $$f || exit 1; \ done; \ fi PYTHON3_INSTALL = \ if [ -n "$(DIST_MANIFEST)" ]; then \ cat $(TOPDIR)/python3-pcp.list \ | while read f; do \ bn=`basename $$f`; \ dn=`dirname $$f`; \ $(INSTALL) -d $$dn || exit 1; \ src=`find "$(DIST_ROOT)/usr/lib" -name $$bn`; \ $(INSTALL) $$src $$f || exit 1; \ done; \ fi else # default case if all of the above tests fail PYTHON_INSTALL = endif # openbsd if endif # cocoa ... freebsd if endif # linux && !gentoo if # Linux and Unix platforms: ifeq "$(findstring $(PCP_PLATFORM),darwin mingw)" "" BINARY = build/$(QT_RELEASE)/$(COMMAND) LNMAKE = test ! -f $(BINARY) -o -L $(COMMAND) || ( rm -f $(COMMAND) && $(LN_S) $(BINARY) $(COMMAND) ) WINDOW = x11 # qmake botches the order of the -L arguments in the generated $(LIBS) # in the Makefile ... need to get the Qt libraries dir (begins with a /) # out from the head of the list and insert it before the first -l argument # (or the end of the list). # So, for example # LIBS = $(SUBLIBS) -L/usr/lib -L../libpcp/src -L../libpcp_qmc/src ... -lpcp_qmc ... # becomes # LIBS = $(SUBLIBS) -L../libpcp/src -L../libpcp_qmc/src ... -L/usr/lib -lpcp_qmc ... # QTFIX = sed -e 's/Makefile.new/Makefile/g' <Makefile.new | $(AWK) '$$1 == "LIBS" { printf $$1; for (i=2;i<=NF;i++) { if ($$i~/^-L\//) { save=save " " $$i; continue } else if (save!="" && $$i~/^-l/) { printf " %s",save; save="" } printf " %s",$$i } if (save!="") printf " %s",save; print ""; next } { print }' >Makefile.fix # # Qt magic for build/installs across all the supported platforms # because qmake does not always get it right, e.g. omitting -fPIC for # static libraries in Qt5 on Ubuntu x86_64, we need to push our CFLAGS, CXXFLAGS # (usually empty) and LDFLAGS down # QTMAKE = rm -f Makefile.new Makefile.fix; export CC='$(CC)'; export CXX='$(CXX)'; CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' LDFLAGS='$(LDFLAGS)' $(QMAKE) -o Makefile.new CONFIG+=$(QT_RELEASE) && $(QTFIX) && ( if [ -f Makefile ]; then if diff Makefile Makefile.fix >/dev/null; then :; else rm -f Makefile; mv Makefile.fix Makefile; fi; else mv Makefile.fix Makefile; fi ); rm -f Makefile.new Makefile.fix; $(MAKE) $(MAKEOPTS) -f Makefile else # Windows and Mac platforms: QTMAKE = CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' LDFLAGS='$(LDFLAGS)' $(QMAKE) CONFIG+=$(QT_RELEASE) && $(MAKE) $(MAKEOPTS) -f Makefile ifeq ($(PCP_PLATFORM),darwin) MACBUILD = build/$(QT_RELEASE)/$(COMMAND).app/Contents BINARY = $(MACBUILD)/MacOS/$(COMMAND) LNMAKE = test ! -f $(BINARY) -o -L $(COMMAND) || ( rm -f $(COMMAND) && $(LN_S) $(BINARY) $(COMMAND) ) WINDOW = mac endif ifeq ($(PCP_PLATFORM),mingw) BINARY = build/$(QT_RELEASE)/$(COMMAND)$(EXECSUFFIX) LNMAKE = WINDOW = win endif endif ifeq ($(PCP_PLATFORM),darwin) INSTALL_DIRECTORY_HIERARCHY=\ d=$(1); while [ "$$d" != "$(2)" -a "$$d" != "/" -a "$$d" != "." ] ; do \ echo $$d; d=`dirname $$d`; done | sort | while read id; do \ $(INSTALL) -m 755 -d $$id || exit 1; done INSTALL_QT_RESOURCES=\ printf "[Paths]\nPlugins=/Library/PCP/Plugins\n\n" > qt.conf; \ $(INSTALL) -m 644 qt.conf $(1)/qt.conf; \ rm qt.conf; \ find frameworks -type d -name qt_menu.nib | while read nib; do \ $(INSTALL) -m 755 -d $(1)/qt_menu.nib || exit 1; \ find $$nib -type f | while read nibs; do \ f=`basename $$nibs`; \ $(INSTALL) -m 644 $$nibs $(1)/qt_menu.nib/$$f || exit 1; \ done; \ done MAC_APPSUPPORT_DIR=/Library/PCP MAC_FRAMEWORKS_DIR=$(MAC_APPSUPPORT_DIR)/Frameworks # WARNING! # This rule modified the binary it was given, once modified the # binary cannot be used with this rule again. # If the binary is installed then it's important to call this # rule before calling install rule for the binary. INSTALL_QT_FRAMEWORKS=\ otool -L $(1) | awk '{if (NR != 1) {print $$1}}' |\ grep -E 'Qt.*\.framework' | while read qt; do \ tdir=`dirname $$qt`; \ install_name_tool -change $$qt $(MAC_FRAMEWORKS_DIR)/$$qt $(1);\ $(call INSTALL_DIRECTORY_HIERARCHY,$(MAC_FRAMEWORKS_DIR)/$$tdir,/Library/PCP); \ mkdir -p frameworks/$$tdir || exit 1; \ fwqt="frameworks/$$qt"; \ cp /Library/Frameworks/$$qt frameworks/$$qt || exit 1; \ otool -L $$fwqt | awk '{if (NR != 1) {print $$1}}' |\ grep -E 'Qt.*\.framework' | while read dep; do \ install_name_tool -change $$dep $(MAC_FRAMEWORKS_DIR)/$$dep $$fwqt;\ done; \ $(INSTALL) frameworks/$$qt $(MAC_FRAMEWORKS_DIR)/$$qt; \ if [ -d /Library/Frameworks/$$tdir/Resources ] ; then \ $(INSTALL) -d $(MAC_FRAMEWORKS_DIR)/$$tdir/Resources; \ (cd /Library/Frameworks/$$tdir; find Resources -type f) | \ while read rf; do \ rfpath="$$tdir/$$rf"; rfd=`dirname $$rfpath`; \ fwpath="frameworks/$$rfpath"; brfd=`basename $$rfd`; \ mkdir -p frameworks/$$rfd || exit 1; \ cp /Library/Frameworks/$$rfpath $$fwpath || exit 1; \ [ $$brfd != qt_menu.nib ] || continue; \ $(INSTALL) -d $(MAC_FRAMEWORKS_DIR)/$$rfd || exit 1; \ $(INSTALL) $$fwpath $(MAC_FRAMEWORKS_DIR)/$$rfpath;\ done \ fi; done endif # For targets that should always be rebuilt, # define a target that is never up-to-date. # Targets needing this should depend on $(_FORCE) _FORCE = __force_build PCP_USER = pcp PCP_GROUP = pcp PCP_USER_INSTALL = root PCP_GROUP_INSTALL = root # systemd service type for logutil scripts SD_SERVICE_TYPE=exec PCPLIB = -lpcp PCPLIB_EXTRAS = $(LIB_FOR_MATH) $(LIB_FOR_PTHREADS) $(LIB_FOR_DLOPEN) $(LIB_FOR_RT) ifneq "$(PCPLIB)" "$(LIB_FOR_BASENAME)" PCPLIB_EXTRAS += $(LIB_FOR_BASENAME) endif ifeq "$(ENABLE_SHARED)" "no" PCPLIB += $(PCPLIB_EXTRAS) endif PCP_GUILIB = -lpcp_gui $(PCPLIB) PCP_PMDALIB = -lpcp_pmda $(PCPLIB) PCP_TRACELIB = -lpcp_trace $(PCPLIB) PCP_MMVLIB = -lpcp_mmv $(PCPLIB) PCPWEBLIB_EXTRAS = $(LIB_FOR_LIBSASL2) $(LIB_FOR_OPENSSL) $(LIB_FOR_LIBUV) $(LIB_FOR_LIBINH) $(PCP_PMDALIB) $(PCP_MMVLIB) PCP_WEBLIB = -lpcp_web $(PCPWEBLIB_EXTRAS) PCP_ARCHIVELIB = -lpcp_archive ifdef PCP_ALTLIBS ifeq ($(PCP_LIB_DIR),$(PCP_LIB32_DIR)) PCP_ALTLIBS = else ifneq "$(findstring $(MAKECMDGOALS),clean clobber)" "" PCP_ALTLIBS = endif endif endif # (optional) hook for developer build definitions # -include $(TOPDIR)/src/include/builddefs_dev endif # _BUILDDEFS_INCLUDED_
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply