Files
geant4/config/globlib.gmk
T
2016-06-01 15:25:35 +02:00

111 lines
3.0 KiB
Plaintext

# $Id: globlib.gmk,v 2.15 1998/12/11 00:40:21 gcosmo Exp $
# --------------------------------------------------------------
# Script for compound libraries. Gabriele Cosmo, 25/6/98.
# --------------------------------------------------------------
ifndef G4INSTALL
G4INSTALL = ..
endif
include $(G4INSTALL)/config/architecture.gmk
G4LIBDIR = $(G4LIB)/$(G4SYSTEM)
.PHONY : all glob global objs clean clean_libs wipe_libs
all:
ifndef G4ODBMS
@for dir in $(SUBDIRS); do (cd $$dir; $(MAKE)); done
else
@for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) headers); done
@for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) d_files); done
@for dir in $(SUBDIRS); do (cd $$dir; G4ODBMS_DEPEND=1; export G4ODBMS_DEPEND; $(MAKE)); done
endif
ifndef G4ODBMS
glob global: objs wipe_libs $(G4LIBDIR)/lib$(name).a
else
glob global: all $(G4LIBDIR)/lib$(name).a $(G4SCHEMA_DIR)/G4SCHEMA.FDDB
endif
$(G4LIBDIR)/lib$(name).a: \
$(foreach dir,$(SUBLIBS),$(G4TMP)/$(G4SYSTEM)/$(dir)/obj.last)
@if [ ! -d $(G4LIBDIR) ] ; then mkdir $(G4LIBDIR) ; fi
@echo Merging object files in $(G4LIBDIR)/lib$(name).a
@$(RM) $(G4LIBDIR)/lib$(name).a
#
#
#
@if [ X$(G4SYSTEM) = XWIN32-VC-NICE ] ; i=NO; \
then \
(( for lib in $(SUBLIBS); \
do ( if [ $$i = NO ]; \
then \
$(AR) $(OUT_LIB)$(G4LIBDIR)/lib$(name).lib \
$(G4TMP)/$(G4SYSTEM)/$$lib/*.o ; \
else \
$(AR) $(G4LIBDIR)/lib$(name).lib $(G4TMP)/$(G4SYSTEM)/$$lib/*.o; \
fi ); \
i=YES; \
done ) ; \
mv $(G4LIBDIR)/lib$(name).lib $(G4LIBDIR)/lib$(name).a); \
else \
(for lib in $(SUBLIBS); \
do ($(AR) $(OUT_LIB)$(G4LIBDIR)/lib$(name).a \
$(G4TMP)/$(G4SYSTEM)/$$lib/*.o); \
done);\
fi
#
#
#
@if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \
ranlib $(G4LIBDIR)/lib$(name).a ; fi
##
## make shared libraries
##
ifneq ($(G4MAKESHLIB),)
@for lib in $(SUBLIBS); do (cp $(G4TMP)/$(G4SYSTEM)/$$lib/*.o $(G4LIBDIR)/.); done
@sh $(G4MAKESHLIB) $(G4LIBDIR) $(name)
$(RM) $(G4LIBDIR)/*.o
endif
ifdef G4ODBMS
headers:
@for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) headers); done
d_files:
@for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) d_files); done
$(G4SCHEMA_DIR)/G4SCHEMA.FDDB: $(G4EXAMPLE_BOOT_DIR)/G4EXAMPLE.FDDB
ifdef G4SCHEMA_DIR
@rm -f $(G4SCHEMA_DIR)/G4SCHEMA
@rm -f $(G4SCHEMA_DIR)/G4SCHEMA.FDDB
@echo Copying schema file to $(G4SCHEMA_DIR) for FDID $(G4SCHEMA_FDID)
@$(HEP_ODBMS_DIR)/etc/getdb $(G4EXAMPLE_BOOT) \
$(G4SCHEMA_DIR)/G4SCHEMA $(G4SCHEMA_FDID)
endif
endif
objs:
@for dir in $(SUBDIRS); \
do (cd $$dir; $(MAKE) -q obj && ok=yes; \
if [ $$ok ]; \
then echo Nothing to be done for lib$(name).a in $$dir/.; \
else $(MAKE) clean_libs; $(MAKE) obj; \
fi; ) \
done
wipe_libs:
@for lib in $(SUBLIBS); do (rm -f $(G4LIBDIR)/lib$$lib.a); done
clean:
@echo Cleaning up ...
@for lib in $(SUBLIBS); do (rm -rf $(G4TMP)/$(G4SYSTEM)/$$lib; rm -f $(G4LIBDIR)/lib$$lib.a); done
@rm -f $(G4LIBDIR)/lib$(name).a
clean_libs:
@echo Removing lib$(name).a and sub-libraries ...
@for lib in $(SUBLIBS); do (rm -f $(G4LIBDIR)/lib$$lib.a); done
@rm -f $(G4LIBDIR)/lib$(name).a