Import Geant4 11.2.0.beta source tree
This commit is contained in:
@@ -1,192 +0,0 @@
|
||||
###############################################################################
|
||||
### GNUmakefile for the G3 to G4 conversion package.
|
||||
###
|
||||
### T. Wenaus 20/11/1995
|
||||
### Uses chunks of John Allison's generic makefiles.
|
||||
###
|
||||
### The presence of Fortran and several standalone programs
|
||||
### make this package non-generic enough to require its
|
||||
### own makefile.
|
||||
###
|
||||
###############################################################################
|
||||
|
||||
G4TARGET := rztog4
|
||||
|
||||
name := G3toG4
|
||||
|
||||
ifndef G4INSTALL
|
||||
G4INSTALL := ../..
|
||||
endif
|
||||
|
||||
GLOBLIBS = libG4tracking.lib libG4processes.lib libG4digits_hits.lib
|
||||
GLOBLIBS += libG4track.lib libG4particles.lib libG4geometry.lib
|
||||
GLOBLIBS += libG4materials.lib libG4graphics_reps.lib
|
||||
GLOBLIBS += libG4intercoms.lib libG4global.lib
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
CPPFLAGS += -DG3TOG4_EXPORT
|
||||
CPPFLAGS += \
|
||||
-I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/global/HEPGeometry/include \
|
||||
-I$(G4BASE)/global/HEPRandom/include \
|
||||
-I$(G4BASE)/geometry/magneticfield/include \
|
||||
-I$(G4BASE)/geometry/volumes/include \
|
||||
-I$(G4BASE)/geometry/management/include \
|
||||
-I$(G4BASE)/geometry/solids/CSG/include \
|
||||
-I$(G4BASE)/geometry/solids/specific/include \
|
||||
-I$(G4BASE)/geometry/solids/Boolean/include \
|
||||
-I$(G4BASE)/geometry/solids/BREPS/include \
|
||||
-I$(G4BASE)/graphics_reps/include \
|
||||
-I$(G4BASE)/materials/include \
|
||||
-I$(G4BASE)/particles/management/include \
|
||||
-I$(G4BASE)/processes/management/include \
|
||||
-I$(G4BASE)/processes/general/include \
|
||||
-I$(G4BASE)/processes/decay/include \
|
||||
-I$(G4BASE)/track/include \
|
||||
-I$(G4BASE)/tracking/include \
|
||||
-I$(G4BASE)/digits_hits/detector/include \
|
||||
-I$(G4BASE)/digits_hits/hits/include
|
||||
|
||||
### kludge for AIX
|
||||
|
||||
ifeq ($(FC),xlf)
|
||||
cpp_include_flag=-WF,-I
|
||||
### -d writes out F*.f file
|
||||
FCFLAGS += -d $(patsubst -I%,$(cpp_include_flag)%,-Iinclude)
|
||||
### xlf prepends .f name with F
|
||||
dotf_prepend=F
|
||||
else
|
||||
### other compilers do not prepend .f name with F
|
||||
dotf_prepend=
|
||||
FCFLAGS += -Iinclude
|
||||
endif
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .a .o .cc .cxx .c .f .F .d
|
||||
|
||||
### --------------------- vpaths ----------------------------------------------
|
||||
|
||||
vpath %.hh $(patsubst -I%,%,$(filter -I%,$(CPPFLAGS)))
|
||||
vpath %.inc $(patsubst -I%,%,$(filter -I%,$(CPPFLAGS)))
|
||||
|
||||
G4LIBDIR := $(G4LIB)/$(G4SYSTEM)
|
||||
G4TMPDIR := $(G4TMP)/$(G4SYSTEM)/$(name)
|
||||
G4BINDIR := $(G4BIN)/$(G4SYSTEM)
|
||||
|
||||
Fbinsources = src/$(G4TARGET).F
|
||||
Fbinobjects = $(patsubst src/%.F,$(G4TMPDIR)/%.o,$(Fbinsources))
|
||||
Flibsources = $(filter-out $(Fbinsources),$(wildcard src/*.F))
|
||||
Flibobjects = $(patsubst src/%.F,$(G4TMPDIR)/%.o,$(Flibsources))
|
||||
Fdependencies = $(patsubst %.o,%.d,$(Fbinobjects) $(Flibobjects))
|
||||
|
||||
ifdef G3G4DEBUG
|
||||
CPPFLAGS += -DG3G4DEBUG
|
||||
endif
|
||||
ifdef G3G4_NO_REFLECTION
|
||||
CPPFLAGS += -DG3G4_NO_REFLECTION
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
### user beware! .rz files made with cernlib v 95a cannot be read with later
|
||||
### versions. You can use cernlib -v option to specify the cernlib version
|
||||
###############################################################################
|
||||
|
||||
### .PHONY targets are executed regardless of time-stamp of any file of same
|
||||
### name
|
||||
|
||||
.PHONY: global all lib bin libc libF
|
||||
|
||||
###--------------------- section to define explicit rules --------------------
|
||||
|
||||
lib: libc
|
||||
|
||||
global: cleanf lib bin
|
||||
|
||||
all: lib
|
||||
|
||||
|
||||
ifneq ($(G4LIB_BUILD_SHARED),)
|
||||
libc : $(G4LIBDIR)/lib$(name).$(SHEXT)
|
||||
else
|
||||
libc : $(G4LIBDIR)/lib$(name).a
|
||||
endif
|
||||
@echo $@ stage done
|
||||
|
||||
libF : $(G4LIBDIR)/lib$(name)F.a
|
||||
@echo $@ stage done
|
||||
|
||||
bin: $(G4BINDIR)/$(G4TARGET)
|
||||
@echo $@ stage done
|
||||
|
||||
### Make Fortran library.
|
||||
|
||||
$(G4LIBDIR)/lib$(name)F.a: $(Flibobjects)
|
||||
@if [ ! -d $(G4LIBDIR) ] ; then mkdir $(G4LIBDIR) ;fi
|
||||
@echo Creating/replacing object files in lib$(name)F.a
|
||||
@ar r $@ $?
|
||||
@if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \
|
||||
echo Running ranlib on lib$(name)F.a ; ranlib $@ ; fi
|
||||
|
||||
### rztog4: Standalone Fortran program that reads an RZ file and converts
|
||||
### the geometry and other init structures therein to G4. A call
|
||||
### list file and G4 C++ code are generated; either can be used
|
||||
### on the G4 side to build the geometry.
|
||||
|
||||
$(G4BINDIR)/$(G4TARGET) : $(Fbinobjects) $(G4LIBDIR)/lib$(name)F.a
|
||||
@if [ ! -d $(G4BINDIR) ] ; then mkdir $(G4BINDIR) ;fi
|
||||
@echo Linking $(G4TARGET)
|
||||
$(RM) $@
|
||||
echo $(G4TARGET) dependencies: $^
|
||||
$(FC) $(Fbinobjects) -o $@ $(G4LIBDIR)/lib$(name)F.a $(shell cernlib -v pro geant321 packlib)
|
||||
@echo Finished linking $(G4TARGET)
|
||||
|
||||
###-------------------- locally defined pattern rules ------------------------
|
||||
|
||||
### Make the .o files from src/*.F
|
||||
# need to wait until libc is done, before strting to compile fortran
|
||||
# or building libc may pick up fortran compiled objects into libc
|
||||
$(G4TMPDIR)/%.o : src/%.F libc
|
||||
$(FC) $(FCFLAGS) -o $(G4TMPDIR)/$(*F).o -c src/$(*F).F
|
||||
@file=$(dotf_prepend)$(*F).f;\
|
||||
if [ -f $$file ]; then echo Moving $$file to $(G4TMPDIR)/$$file; \
|
||||
mv $$file $(G4TMPDIR)/$$file; fi
|
||||
|
||||
### Move the .f files
|
||||
$(G4TMPDIR)/%.f : %.f
|
||||
@echo Moving $< to $@
|
||||
@mv $< $@
|
||||
|
||||
### --------------------- .d files --------------------------------------------
|
||||
|
||||
### Make the .d file(s) and include it(them).
|
||||
### g++ -MM is good at this, except it forgets the subdirectory (hence
|
||||
### the echo $(@D)/).
|
||||
|
||||
$(G4TMPDIR)/%.d: src/%.F
|
||||
@if [ ! -d $(G4TMP)/$(G4SYSTEM) ] ; then mkdir $(G4TMP)/$(G4SYSTEM) ;fi
|
||||
@if [ ! -d $(G4TMPDIR) ] ; then mkdir $(G4TMPDIR) ;fi
|
||||
@if test -f $@ ; then rm -f $@; fi
|
||||
@echo $(G4LIBDIR)/lib$(name)F.a\($*.o\) $@ " : " $? "\\" > $@
|
||||
@if test -f $< ; then awk '$$1=="#include" { print $$2 " \\" }' $< | tr -d \"\>\< >> $@ ; echo >> $@ ; fi
|
||||
|
||||
###@if test -f $< ; then echo Making $@ depend file for $<; awk '$$1=="#include" { print $$2 " \\" }' $< | tr -d \"\>\< >> $@ ; echo >> $@ ; fi
|
||||
|
||||
### --------------------- end of pattern rules --------------------------------
|
||||
|
||||
-include $(Fdependencies)
|
||||
|
||||
clean:: cleanf
|
||||
|
||||
cleanf:
|
||||
@$(RM) $(Flibobjects)
|
||||
@$(RM) $(Fbinobjects)
|
||||
@$(RM) $(Fdependencies)
|
||||
@$(RM) $(G4BINDIR)/$(G4TARGET)
|
||||
|
||||
include $(G4INSTALL)/config/common.gmk
|
||||
|
||||
test1:
|
||||
@echo $(sources)
|
||||
@echo $(objects)
|
||||
@echo $(dependencies)
|
||||
@@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2022-12-12 Ben Morgan (g3tog4-V11-01-00)
|
||||
- Remove obsolete GNUmakefile scripts
|
||||
|
||||
## 2022-11-16 Gabriele Cosmo (g3tog4-V11-00-04)
|
||||
- Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user