/usr/share/HepMC/examples/GNUmakefile is in hepmc-examples 2.06.09-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | ################################################################################
# Makefile for building a HepMC executable with the gcc compiler
#
# Matt.Dobbs@CERN.CH 1.2000
#
# This makefiles also works to compile the example programs.
# I.E.: syntax for compiling the example_MyPythia.cc example:
# gmake example_MyPythia.exe
# or simply gmake all to compile all examples.
#
################################################################################ Define directory paths
# You may have to change GENSERdir and/or other variables
#
HepMCdir = /usr
HepMClib = -L$(HepMCdir)/lib -lHepMC
HepMCfiolib = -L$(HepMCdir)/lib -lHepMCfio
GENSERdir =
CLHEPdir =
################################################################################ Compiler options
#
CXX = g++
F77 =
INCLUDES = -I$(HepMCdir)/include -I$(CLHEPdir)/include
CXXFLAGS = -ansi -pedantic -Wall -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security $(INCLUDES)
FLAGS = $(DFLG) $(INCDIR)
ifeq "$(CXX)" "g++"
FLAGS += -fno-second-underscore
endif
EXAMPLES = example_BuildEventFromScratch.exe \
example_EventSelection.exe \
example_UsingIterators.exe
LINK_LIBS = -Wl,-Bsymbolic-functions -Wl,-z,relro
UNAME = $(shell uname)
ifneq (,$(strip $(CLHEPdir)))
EXAMPLES += example_VectorConversion.exe
ifeq "$(UNAME)" "Darwin"
CLHEP_LIB = -L$(CLHEPdir)/lib -lCLHEP
else
CLHEP_LIB = -L$(CLHEPdir)/lib -lCLHEP -Wl,-rpath -Wl,$(CLHEPdir)/lib
endif
endif
ifeq "$(UNAME)" "Darwin"
else
LINK_LIBS += -Wl,-rpath -Wl,$(HepMCdir)/lib
endif
HDRS = $(HepMCdir)/include/HepMC/*.h *.h
################################################################################
PLATFORM=$(shell uname)
ifeq "$(PLATFORM)" "Linux"
LINK_LIBS += -lg2c
endif
################################################################################ definition of the compiler options
# -I location of directory containing include files
# -L location of directory containing libraries
# -lname include the library from -L location called libname.a
# -lg2c is the library containing info on converting fortran to C
# -lf is the library containing the intrinsic for HPUX only.
# -shared make a shared library as output
# -fPIC produce position independent code
# necessary on some platforms (including HPUX) for -shared
# -fpic ^^ same(?)
# -O optimizes
# -g produces output for the debugger
# -pg produces output for gprof profiler
# note: if you want to see all warnings and ensure ansi standard
# compatibility, use:
# -pipe -ansi -pedantic -fnonnull-objects \
# -W -Wall -Wwrite-strings -Wpointer-arith -Wnested-externs \
# -Woverloaded-virtual -Wbad-function-cast -fnonnull-objects
# The proper order for cernlib libraries is:
# -lpawlib -lgraflib -lgrafX11 -lmathlib -lkernlib -lpacklib -ljetset74
#
# makefile syntax:
# for target thedir/target.suf from source anotherdir/source.suf2
# ${*D} = thedir
# ${*F} = target
# $* = thedir/target
# $@ = thedir/target.suf
# $< = anotherdir/source.suf2
#
###############################################################################
#
.SUFFIXES: .o .cc .exe
all: $(EXAMPLES)
example_BuildEventFromScratch.exe: example_BuildEventFromScratch.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) example_BuildEventFromScratch.o \
$(HepMClib) \
$(LINK_LIBS) -o $@
example_VectorConversion.exe: example_VectorConversion.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) example_VectorConversion.o \
$(HepMClib) \
$(CLHEP_LIB) \
$(LINK_LIBS) -o $@
example_EventSelection.exe: example_EventSelection.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) example_EventSelection.o \
$(HepMClib) \
$(LINK_LIBS) -o $@
example_UsingIterators.exe: example_UsingIterators.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) example_UsingIterators.o \
$(HepMClib) \
$(LINK_LIBS) -o $@
###############################################################################
# instructions for building a .o file from a .cc file
#
.cc.o: $(HDRS) $<
@echo "Compiling $< with $(CXX) ..."
@$(CXX) $(CXXFLAGS) -c $< -o $@
###############################################################################
# gmake clean removes all garbage from HepMC directories.
#
clean:
rm -f *.o
###############################################################################
# gmake distclean removes all compiled libraries, executables, +garbage
# to prepare the package for distribution
distclean:
$(MAKE) clean --no-print-directory
rm -f *.exe
rm -f *.dat
|