# Extend CFLAGS if HDF5 library was built with LFS support LFS_support := $(shell grep -s _LARGEFILE_SOURCE $(strip $(HDF5_LIB_DIRS))/libhdf5.settings) ifneq ($(strip $(LFS_support)),) CFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 endif # general linking rule $(UTIL_DIR)$(DIRSEP)%: $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)%.o @echo Creating $* in $(UTIL_DIR) from $< if [ ! -d $(UTIL_DIR) ]; then $(MKDIR) $(MKDIRFLAGS) $(UTIL_DIR) ; fi $(LD) $(CREATEEXE)$(OPTIONSEP)$@ $(DEBUG_LD) $(LDFLAGS) $(EXTRAFLAGS) $< $(HDF5_LIB_DIRS:%=-L%) $(HDF5_LIBS:%=-l%) -lm # general compile rule $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)%.o: $(PACKAGE_DIR)$(DIRSEP)CactusPUGHIO$(DIRSEP)IOHDF5$(DIRSEP)src$(DIRSEP)util$(DIRSEP)%.c @echo Compiling $< if [ ! -d $(BUILD_DIR)$(DIRSEP)IOHDF5 ]; then $(MKDIR) $(MKDIRFLAGS) $(BUILD_DIR)$(DIRSEP)IOHDF5 ; fi cd $(BUILD_DIR)$(DIRSEP)IOHDF5 $(CC) $< -DCCODE $(CFLAGS) -I$(CONFIG) -I$(BINDINGS_DIR)$(DIRSEP)include -I$(FLESH_DIR)$(DIRSEP)include -I$(CCTK_HOME)$(DIRSEP)arrangements $(HDF5_INC_DIRS:%=-I%) $(SYS_INC_DIRS:%=-I%) $(CCOMPILEONLY)$(OPTIONSEP)$@ # linking rule for hdf5_convert_from_ieeeio $(UTIL_DIR)$(DIRSEP)hdf5_convert_from_ieeeio: $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)hdf5_convert_from_ieeeio.o @echo Creating hdf5_convert_from_ieeeio in $(UTIL_DIR) from $< if [ ! -d $(UTIL_DIR) ]; then $(MKDIR) $(MKDIRFLAGS) $(UTIL_DIR) ; fi $(LD) $(CREATEEXE)$(OPTIONSEP)$@ $(DEBUG_LD) $(LDFLAGS) $(EXTRAFLAGS) $< -L$(CCTK_LIBDIR) -lFlexIO $(HDF5_LIB_DIRS:%=-L%) $(HDF5_LIBS:%=-l%) -lm # compile rule for hdf5_convert_from_ieeeio $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)hdf5_convert_from_ieeeio.o: $(PACKAGE_DIR)$(DIRSEP)CactusPUGHIO$(DIRSEP)IOHDF5$(DIRSEP)src$(DIRSEP)util$(DIRSEP)hdf5_convert_from_ieeeio.c @echo Compiling $< if [ ! -d $(BUILD_DIR)$(DIRSEP)IOHDF5 ]; then $(MKDIR) $(MKDIRFLAGS) $(BUILD_DIR)$(DIRSEP)IOHDF5 ; fi cd $(BUILD_DIR)$(DIRSEP)IOHDF5 $(CC) $< -DCCODE $(CFLAGS) -DANSI -I$(CONFIG) -I$(BINDINGS_DIR)$(DIRSEP)include -I$(FLESH_DIR)$(DIRSEP)include -I$(CCTK_HOME)$(DIRSEP)arrangements $(HDF5_INC_DIRS:%=-I%) $(FLEXIO_INC_DIRS:%=-I%) $(SYS_INC_DIRS:%=-I%) $(CCOMPILEONLY)$(OPTIONSEP)$@ # need to extract SDF includes and libs from the bindings makefiles # (those are not included when building utilities) SDF_INC_DIRS := $(shell grep INC_DIRS $(CONFIG)/../bindings/Configuration/IOSDF/make.configuration.defn 2>/dev/null | cut -f2 -d'=') SDF_LIB_DIRS := $(shell grep LIBDIRS $(CONFIG)/../bindings/Configuration/make.link | cut -f2 -d'=') SDF_LIBS := $(shell grep LIBS $(CONFIG)/../bindings/Configuration/make.link | cut -f2 -d'=') # linking rule for hdf5_convert_from_sdf $(UTIL_DIR)$(DIRSEP)hdf5_convert_from_sdf: $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)hdf5_convert_from_sdf.o @echo Creating hdf5_convert_from_sdf in $(UTIL_DIR) from $< if [ ! -d $(UTIL_DIR) ]; then $(MKDIR) $(MKDIRFLAGS) $(UTIL_DIR) ; fi $(LD) $(CREATEEXE)$(OPTIONSEP)$@ $(DEBUG_LD) $(LDFLAGS) $(EXTRAFLAGS) $< -L$(CCTK_LIBDIR) $(SDF_LIB_DIRS:%=-L%) $(SDF_LIBS:%=-l%) $(HDF5_LIB_DIRS:%=-L%) $(HDF5_LIBS:%=-l%) -lm # compile rule for hdf5_convert_from_sdf $(BUILD_DIR)$(DIRSEP)IOHDF5$(DIRSEP)hdf5_convert_from_sdf.o: $(PACKAGE_DIR)$(DIRSEP)CactusPUGHIO$(DIRSEP)IOHDF5$(DIRSEP)src$(DIRSEP)util$(DIRSEP)hdf5_convert_from_sdf.c @echo Compiling $< if [ ! -d $(BUILD_DIR)$(DIRSEP)IOHDF5 ]; then $(MKDIR) $(MKDIRFLAGS) $(BUILD_DIR)$(DIRSEP)IOHDF5 ; fi cd $(BUILD_DIR)$(DIRSEP)IOHDF5 $(CC) $< -DCCODE $(CFLAGS) -DANSI -I$(CONFIG) -I$(BINDINGS_DIR)$(DIRSEP)include -I$(FLESH_DIR)$(DIRSEP)include -I$(SDF_INC_DIRS) $(HDF5_INC_DIRS:%=-I%) $(FLEXIO_INC_DIRS:%=-I%) $(SYS_INC_DIRS:%=-I%) $(CCOMPILEONLY)$(OPTIONSEP)$@