/usr/share/HepMC/examples/fio/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 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | ################################################################################
# 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 = -lHepMC
HepMCfiolib = -lHepMCfio
GENSERdir =
Pythia_LIB = -lpythia6
Herwig_LIB = -lherwig6
################################################################################ Compiler options
#
CXX = g++
F77 = gfortran
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)
ifeq "$(CXX)" "g++"
FLAGS = $(DFLG) -fno-second-underscore $(INCDIR)
else
FLAGS = $(DFLG) $(INCDIR)
endif
LINK_LIBS = -Wl,-z,relro
UNAME = $(shell uname)
ifneq "$(UNAME)" "Darwin"
LINK_LIBS += -Wl,-rpath -Wl,$(HepMCdir)/lib
endif
ifeq "$(UNAME)" "Linux"
ifeq "$(F77)" "gfortran"
LINK_LIBS += -lgfortran
else
LINK_LIBS += -lg2c
endif
endif
initpydata_OBJ= initpydata.o
pythia_OBJ = initPythia.o initpydata.o
HDRS = $(HepMCdir)/include/HepMC/*.h *.h
EXAMPLES = example_MyHerwig.exe \
example_MyPythia.exe \
example_MyPythiaOnlyToHepMC.exe \
example_PythiaStreamIO.exe \
testPythiaCopies.exe \
testHerwigCopies.exe
################################################################################ 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 .cxx .f .exe
all: $(EXAMPLES)
example_MyHerwig.exe: example_MyHerwig.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) example_MyHerwig.o \
$(HepMClib) $(HepMCfiolib) \
$(Herwig_LIB) $(LINK_LIBS) -o $@
example_MyPythia.exe: $(initpydata_OBJ) $(pythia_OBJ) example_MyPythia.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) $(pythia_OBJ) example_MyPythia.o \
$(HepMClib) $(HepMCfiolib) \
$(Pythia_LIB) $(LINK_LIBS) -o $@
example_MyPythiaOnlyToHepMC.exe: $(initpydata_OBJ) $(pythia_OBJ) example_MyPythiaOnlyToHepMC.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) $(pythia_OBJ) example_MyPythiaOnlyToHepMC.o \
$(HepMClib) $(HepMCfiolib) \
$(Pythia_LIB) $(LINK_LIBS) -o $@
example_PythiaStreamIO.exe: $(initpydata_OBJ) $(pythia_OBJ) example_PythiaStreamIO.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) $(pythia_OBJ) example_PythiaStreamIO.o \
$(HepMClib) $(HepMCfiolib) \
$(Pythia_LIB) $(LINK_LIBS) -o $@
testPythiaCopies.exe: $(initpydata_OBJ) $(pythia_OBJ) testPythiaCopies.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) $(pythia_OBJ) testPythiaCopies.o \
$(HepMClib) $(HepMCfiolib) \
$(Pythia_LIB) $(LINK_LIBS) -o $@
testHerwigCopies.exe: testHerwigCopies.o
@echo "Building $@ ..."
$(CXX) $(FLAGS) testHerwigCopies.o \
$(HepMClib) $(HepMCfiolib) \
$(Herwig_LIB) $(LINK_LIBS) -o $@
###############################################################################
# instructions for building a .o file from a .cxx file
#
.cc.o: $(HDRS) $<
@echo "Compiling $< with $(CXX) ..."
@$(CXX) $(CXXFLAGS) -c $< -o $@
###############################################################################
# instructions for building a .o file from a .f file
#
.f.o: $<
@echo "Compiling $< with $(F77) ..."
@$(F77) $(FLAGS) -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
|