22# #####################################################################
33# Makefile - command file for make to create CBFlib #
44# #
5- # Version 0.9.8 27 May 2024 #
5+ # Version 0.9.8 22 Mar 2025 #
66# #
77# Paul Ellis and #
88# Herbert J. Bernstein ([email protected] ) #@@ -346,11 +346,19 @@ TIFF_INSTALL = $(TIFF)_INSTALL
346346#
347347
348348ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG ) ,yes)
349- SWIG_PREFIX ? = $(PWD )
350- SWIG_KIT ? = swig-fortran-swig
349+ SWIG_PREFIX : = $(PWD )
350+ SWIG_KIT : = swig-4.4.0
351351else
352- SWIG_PREFIX =
353- SWIG_KIT =
352+ SWIG_PREFIX :=
353+ SWIG_KIT :=
354+ endif
355+
356+ ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG_FORTRAN ) ,yes)
357+ SWIG_FORTRAN_PREFIX := $(F90CBF )
358+ SWIG_FORTRAN_KIT := swig-fortran-swig
359+ else
360+ SWIG_FORTRAN_PREFIX :=
361+ SWIG_FORTRAN_KIT :=
354362endif
355363
356364
@@ -595,17 +603,23 @@ SHELL = bash
595603#
596604# Program to display differences between files
597605#
598- DIFF = diff -u -b
606+ DIFF = diff -u -b -a
599607
600608
601609#
602610# Program to generate various wrapper for C/C++ code
603611#
604612
605613ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG ) ,yes)
606- SWIG = $(BIN ) /swig
614+ SWIG := $(BIN ) /swig
615+ else
616+ SWIG := swig
617+ endif
618+
619+ ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG_FORTRAN ) ,yes)
620+ SWIG_FORTRAN := $(F90CBF ) /bin/swig
607621else
608- SWIG = swig
622+ SWIG_FORTRAN :=
609623endif
610624
611625#
@@ -621,7 +635,7 @@ JSWIG = $(SWIG) -java
621635#
622636# Program to generate wrapper module for f90
623637#
624- F90SWIG = $(SWIG ) -fortran
638+ F90SWIG = $(SWIG_FORTRAN ) -fortran
625639
626640#
627641# Java SDK root directory
@@ -785,10 +799,14 @@ LZ4_URL = http://www.github.com/yayahjb/$(LZ4).git
785799endif
786800BSHUF_URL = http://www.github.com/yayahjb/$(BSHUF ) .git
787801ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG ) ,yes)
788- SWIG_URL = https://github.com/yayahjb/swig-fortran-swig.git
802+ SWIG_URL := https://github.com/swig/swig.git
803+ endif
804+ ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG_FORTRAN ) ,yes)
805+ SWIG_FORTRAN_URL := https://github.com/swig-fortran/swig.git
789806endif
790807
791808
809+
792810#
793811# Include directories
794812#
@@ -797,10 +815,26 @@ INCLUDES = -I$(INCLUDE) -I$(SRC) $(HDF5include)
797815#
798816# runtime library path export commands
799817#
818+ ifeq ($LD_LIBRARY_PATH)$(DYLD_LIBRARY_PATH )$(LD_RUN_PATH ) ,)
800819ifeq ($(HDF5_PREFIX ) ,)
801- RTLPEXPORTS = LD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib;export LD_LIBRARY_PATH; DYLD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib;export DYLD_LIBRARY_PATH; LD_RUN_PATH=$(PWD ) /solib:$(PWD ) /lib;export LD_RUN_PATH;
820+ RTLPEXPORTS = LD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib;export LD_LIBRARY_PATH;\
821+ DYLD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib;export DYLD_LIBRARY_PATH;\
822+ LD_RUN_PATH=$(PWD ) /solib:$(PWD ) /lib;export LD_RUN_PATH;
802823else
803- RTLPEXPORTS = LD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_LIBRARY_PATH; DYLD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export DYLD_LIBRARY_PATH; LD_RUN_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_RUN_PATH;
824+ RTLPEXPORTS = LD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_LIBRARY_PATH;\
825+ DYLD_LIBRARY_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export DYLD_LIBRARY_PATH;\
826+ LD_RUN_PATH=$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_RUN_PATH;
827+ endif
828+ else
829+ ifeq ($(HDF5_PREFIX ) ,)
830+ RTLPEXPORTS = LD_LIBRARY_PATH=$(LD_LIBRARY_PATH ) :$(PWD ) /solib:$(PWD ) /lib;export LD_LIBRARY_PATH;\
831+ DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH ) :$(PWD ) /solib:$(PWD ) /lib;export DYLD_LIBRARY_PATH;\
832+ LD_RUN_PATH=$(LD_RUN_PATH ) :$(PWD ) /solib:$(PWD ) /lib;export LD_RUN_PATH;
833+ else
834+ RTLPEXPORTS = LD_LIBRARY_PATH=$(LD_LIBRARY_PATH ) :$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_LIBRARY_PATH;\
835+ DYLD_LIBRARY_PATH=$(DYLD_LIBRARY_PATH ) :$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export DYLD_LIBRARY_PATH;\
836+ LD_RUN_PATH=$(LD_RUN_PATH ) :$(PWD ) /solib:$(PWD ) /lib:$(HDF5_PREFIX ) /lib;export LD_RUN_PATH;
837+ endif
804838endif
805839
806840# #####################################################################
@@ -1112,7 +1146,8 @@ endif
11121146
11131147
11141148all :: $(BIN ) $(SOURCE ) $(F90SOURCE ) $(HEADERS ) \
1115- $(SWIG_KIT ) \
1149+ $(SWIG_FORTRAN_KIT ) \
1150+ $(SWIG_KIT) \
11161151 $(HDF5) \
11171152 $(LIBAECDEPS) \
11181153 $(LZ4DEPS) \
@@ -1440,16 +1475,29 @@ endif
14401475 chmod 755 $(CBF_PREFIX)/bin/batch_convert_minicbf.sh
14411476 chmod 644 $(CBF_PREFIX)/include/cbflib/*.h
14421477
1478+ ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG_FORTRAN ) ,yes)
1479+ #
1480+ # SWIG_FORTRAN_KIT
1481+ #
1482+ build_swig_fortran : $(M4 ) /Makefile.m4
1483+ touch build_swig_fortran
1484+ $(SWIG_FORTRAN_KIT ) : build_swig_fortran
1485+ rm -rf $(SWIG_FORTRAN_KIT )
1486+ git clone $(SWIG_FORTRAN_URL ) $(SWIG_FORTRAN_KIT )
1487+ (export SWIG_FORTRAN_PREFIX=$( PWD) ; cd $( SWIG_FORTRAN_KIT) ; ./autogen.sh; \
1488+ ./configure --prefix=$(F90CBF ) ; make; make install)
1489+ touch $(SWIG_FORTRAN_KIT )
1490+ endif
1491+
14431492ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG ) ,yes)
14441493#
14451494# SWIG_KIT
14461495#
1447- $(SWIG_KIT ) :
14481496build_swig : $(M4 ) /Makefile.m4
14491497 touch build_swig
14501498$(SWIG_KIT ) : build_swig
14511499 rm -rf $(SWIG_KIT )
1452- git clone $(SWIG_URL )
1500+ git clone $(SWIG_URL ) $( SWIG_KIT )
14531501 (export SWIG_PREFIX=$( PWD) ; cd $( SWIG_KIT) ; ./autogen.sh; \
14541502 ./configure --prefix=$(SWIG_PREFIX ) ; make; make install)
14551503 touch $(SWIG_KIT )
@@ -1684,7 +1732,7 @@ $(BSHUF): $(HDF5) build_BSHUF $(LZ4dep)
16841732 mkdir -p $(SOLIB )
16851733 -rm -rf $(BSHUF )
16861734 git clone $(BSHUF_URL )
1687- (cd $( BSHUF) ; git submodule update --init; python3 -m build --config-setting=install \
1735+ (cd $( BSHUF) ; git submodule update --init; $( PYTHON3 ) -m build --config-setting=install \
16881736 -C--h5plugin -C--h5plugin-dir=../solib -C--zstd -C--user)
16891737 touch $(BSHUF)
16901738endif
@@ -2050,12 +2098,12 @@ $(SOLIB)/$(SO_LIB_CBF_WRAP): $(JCBF)/cbflib-$(VERSION).jar $(SOLIB)/$(SO_LIB_CBF
20502098#
20512099# F90 bindings
20522100#
2053- $(F90CBF ) /f90cbf.f90 $(F90CBF ) /f90cbf_wrap.c $(F90CBF ) /f90cbf.mod : $(F90CBF ) /f90cbf.i $(BIN ) /convert_f90_swig_wrap
2054- $(SWIG ) -fortran $(INCLUDES ) $(F90CBF ) /f90cbf.i
2101+ $(F90CBF ) /f90cbf.f90 $(F90CBF ) /f90cbf_wrap.c $(F90CBF ) /f90cbf.mod : $(F90CBF ) /f90cbf.i $(F90CBF ) /bin /convert_f90_swig_wrap
2102+ $(SWIG_FORTRAN ) -fortran $(INCLUDES ) $(F90CBF ) /f90cbf.i
20552103 cp $(F90CBF ) /f90cbf.f90 $(F90CBF ) /f90cbf.f90_orig
20562104 cp $(F90CBF ) /f90cbf_wrap.c $(F90CBF ) /f90cbf_wrap.c_orig
2057- (cd $( F90CBF) ; cat f90cbf.f90_orig | $( BIN ) /convert_f90_swig_wrap > f90cbf.f90)
2058- (cd $( F90CBF) ; cat f90cbf_wrap.c_orig | $( BIN ) /convert_f90_swig_wrap > f90cbf_wrap.c)
2105+ (cd $( F90CBF) ; cat f90cbf.f90_orig | $( F90CBF ) /bin /convert_f90_swig_wrap > f90cbf.f90)
2106+ (cd $( F90CBF) ; cat f90cbf_wrap.c_orig | $( F90CBF ) /bin /convert_f90_swig_wrap > f90cbf_wrap.c)
20592107
20602108$(F90CBF ) /f90cbf.o : $(F90CBF ) /f90cbf.f90
20612109 (cd $( F90CBF) ; $( F90C) -ffree-form -fPIC $( FCFLAGS) -c $( F90CBF) /f90cbf.f90)
@@ -2113,8 +2161,8 @@ $(EXAMPLES)/test_xds_binary.f90: $(M4)/test_xds_binary.m4 $(M4)/fcblib_defines.m
21132161#
21142162# convert_f90_swig_wrap program
21152163#
2116- $(BIN ) /convert_f90_swig_wrap : $(EXAMPLES ) /convert_f90_swig_wrap.cpp
2117- mkdir -p $(BIN )
2164+ $(F90CBF ) /bin /convert_f90_swig_wrap : $(EXAMPLES ) /convert_f90_swig_wrap.cpp
2165+ mkdir -p $(F90CBF ) /bin
21182166 $(C++ ) $(CFLAGS ) $(LDFLAGS ) $(MISCFLAG ) $(INCLUDES ) $(WARNINGS ) \
21192167 $(EXAMPLES ) /convert_f90_swig_wrap.cpp -L$(LIB ) -o $@
21202168
@@ -2971,6 +3019,9 @@ empty:
29713019ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG ) ,yes)
29723020 @-rm -rf $(SWIG_KIT)
29733021endif
3022+ ifneq ($(CBFLIB_DONT_USE_LOCAL_SWIG_FORTRAN ) ,yes)
3023+ @-rm -rf $(SWIG_FORTRAN_KIT)
3024+ endif
29743025ifneq ($(CBFLIB_DONT_USE_PY2CIFRW ) ,yes)
29753026 @-rm -f $(PY2CBF)/_py2cbf.$(PY2CBFEXT)
29763027 @-rm -rf $(PY2CBF)/build/*
0 commit comments