mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-05 16:20:10 +08:00
298 lines
10 KiB
Makefile
298 lines
10 KiB
Makefile
## This is a automake file, part of Unidata's netCDF package.
|
|
# Copyright 2005, see the COPYRIGHT file for more information.
|
|
|
|
# This is the main automake file for netCDF. It builds the different
|
|
# netcdf directories. Not all directories are built, depending on the
|
|
# options selected during configure.
|
|
|
|
# $Id: Makefile.am,v 1.137 2010/06/01 15:34:49 ed Exp $
|
|
|
|
# This directory stores libtool macros, put there by aclocal.
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
# Tell automake that netcdf.h (and maybe netcdf_par.h) is a header
|
|
# file we want to install.
|
|
include_HEADERS = netcdf.h
|
|
if BUILD_PARALLEL
|
|
include_HEADERS += netcdf_par.h
|
|
endif
|
|
|
|
# This header is used by all test programs but will not be installed.
|
|
noinst_HEADERS = nc_tests.h nc_logging.h
|
|
|
|
# These files get added to the distribution.
|
|
EXTRA_DIST = README COPYRIGHT RELEASE_NOTES INSTALL test_prog.c \
|
|
test_prog.F test_prog.f90
|
|
|
|
pkgconfigdir=$(libdir)/pkgconfig
|
|
pkgconfig_DATA = netcdf.pc
|
|
|
|
# This will go to the man directory and build, if necessary, the
|
|
# netcdf-install.txt file, which will be copied into the main
|
|
# directory, renamed "INSTALL".
|
|
INSTALL:
|
|
cd man4; make netcdf-install.info netcdf-install.txt
|
|
cp man4/netcdf-install.txt INSTALL
|
|
|
|
# If the user wants the F77 API this will cause it to be built and
|
|
# tested.
|
|
if BUILD_F77
|
|
F77_DIR = fortran
|
|
F77_TEST = nf_test
|
|
endif
|
|
|
|
# Does the user want C API?
|
|
if BUILD_C
|
|
|
|
LIBSRC_DIR = libsrc
|
|
NC_TEST_DIR = nc_test
|
|
|
|
# Does the user want to build the V2 API?
|
|
if BUILD_V2
|
|
V2_TEST = nctest
|
|
endif
|
|
|
|
# Does the user want C++ API?
|
|
if BUILD_CXX
|
|
CXX_DIR = cxx
|
|
endif
|
|
|
|
# Does the user want to build ncgen/ncdump?
|
|
if BUILD_UTILITIES
|
|
NCGEN3 = ncgen3
|
|
NCGEN = ncgen
|
|
NCDUMP = ncdump
|
|
endif
|
|
|
|
# Does the user want to build the examples?
|
|
if BUILD_EXAMPLES
|
|
EXAMPLES = examples
|
|
endif
|
|
|
|
# Is the user building netCDF-4?
|
|
if USE_NETCDF4
|
|
LIBSRC4_DIR = libsrc4
|
|
NC_TEST4 = nc_test4
|
|
endif
|
|
|
|
# Is the user building dispatch?
|
|
if USE_DISPATCH
|
|
DISPATCHDIR = libdispatch
|
|
ASSEMBLEDIR = liblib
|
|
endif
|
|
|
|
endif # BUILD_C
|
|
|
|
# Does the user want F90 API?
|
|
if BUILD_F90
|
|
F90_DIR = f90
|
|
endif
|
|
|
|
# Build the new netCDF-4 C++ API?
|
|
if BUILD_CXX4
|
|
CXX4 = cxx4
|
|
endif
|
|
|
|
# Build the opendap client?
|
|
if BUILD_DAP
|
|
OCLIB=oc
|
|
NCDAP3=libncdap3
|
|
if BUILD_UTILITIES
|
|
NCDAPTESTDIR=ncdap_test
|
|
endif # BUILD_UTILITIES
|
|
NCDAP4=libncdap4
|
|
endif
|
|
|
|
# Build UDUNITS?
|
|
if BUILD_UDUNITS
|
|
UDUNITS=udunits
|
|
endif
|
|
|
|
# Build libcf?
|
|
if BUILD_LIBCF
|
|
LIBCF=libcf
|
|
endif
|
|
|
|
#WIN32=win32
|
|
|
|
# This is the list of subdirs for which Makefiles will be constructed
|
|
# and run. ncgen must come before ncdump and cxx, because their tests
|
|
# depend on it. nf_test depends upon ncgen as well.
|
|
# If not using dispatch then NC3DAPDIR must be
|
|
# built right before LIBSRC_DIR and NC4DAPDIR must be
|
|
# built right before LIBSRC4_DIR.
|
|
# If using dispatch, then the order is different
|
|
if BUILD_SEPARATE_FORTRAN
|
|
SUBDIRS = $(UDUNITS) $(DISPATCHDIR) $(OCLIB) \
|
|
$(F90_DIR) $(F77_DIR) \
|
|
$(LIBSRC_DIR) $(LIBSRC4_DIR) $(NCDAP3) $(NCDAP4) \
|
|
${ASSEMBLEDIR} \
|
|
$(V2_TEST) $(NCGEN3) $(NCGEN) $(NCDUMP) \
|
|
$(F77_TEST) ${CXX_DIR} $(CXX4) \
|
|
$(NC_TEST_DIR) $(NC_TEST4) $(NCDAPTESTDIR) \
|
|
man4 $(EXAMPLES) $(WIN32) $(LIBCF)
|
|
else
|
|
SUBDIRS = $(UDUNITS) $(DISPATCHDIR) $(OCLIB) \
|
|
$(F90_DIR) $(F77_DIR) \
|
|
$(LIBSRC_DIR) $(LIBSRC4_DIR) $(NCDAP3) $(NCDAP4) \
|
|
${ASSEMBLEDIR} \
|
|
$(V2_TEST) $(NCGEN3) $(NCGEN) $(NCDUMP) \
|
|
$(F77_TEST) ${CXX_DIR} $(CXX4) \
|
|
$(NC_TEST_DIR) $(NC_TEST4) $(NCDAPTESTDIR) \
|
|
man4 $(EXAMPLES) $(WIN32) $(LIBCF)
|
|
endif
|
|
|
|
# make test should do the same as make check.
|
|
test: check
|
|
|
|
# Remove these generated files, for a distclean.
|
|
DISTCLEANFILES = VERSION comps.txt test_prog
|
|
|
|
# The nc-config script helps the user build programs with netCDF.
|
|
bin_SCRIPTS = nc-config
|
|
|
|
# What needs to go in the binrary dist?
|
|
BINFILES = README_BINARIES.txt
|
|
if BUILD_C
|
|
BINFILES += include/netcdf.h share/man/man3/netcdf.3 lib/libnetcdf.a
|
|
endif
|
|
|
|
if BUILD_UTILITIES
|
|
BINFILES += bin/ncgen3$(EXEEXT) bin/ncgen$(EXEEXT) bin/ncdump$(EXEEXT) \
|
|
share/man/man1/ncgen.1 share/man/man1/ncdump.1
|
|
endif
|
|
|
|
if BUILD_F77
|
|
BINFILES += include/netcdf.inc share/man/man3/netcdf_f77.3
|
|
if BUILD_SEPARATE_FORTRAN
|
|
BINFILES += lib/libnetcdff.a
|
|
endif
|
|
endif
|
|
|
|
if BUILD_F90
|
|
if UPPER_CASE_MOD
|
|
BINFILES += include/NETCDF.mod include/TYPESIZES.mod
|
|
else
|
|
BINFILES += include/netcdf.mod include/typesizes.mod
|
|
endif
|
|
BINFILES += share/man/man3/netcdf_f90.3
|
|
endif
|
|
|
|
if BUILD_CXX
|
|
BINFILES += include/netcdf.hh include/ncvalues.h include/netcdfcpp.h lib/libnetcdf_c++.a
|
|
endif
|
|
|
|
# At Unidata, package up binaries.
|
|
ftpbin: install
|
|
echo "Getting binaries from ${prefix}"
|
|
ls -l ${prefix}
|
|
echo "These are the binaries for netCDF @PACKAGE_VERSION@." > ${prefix}/README_BINARIES.txt
|
|
echo "For this build: CC=$(CC) CXX=$(CXX) FC=$(FC) F77=$(F77) $F90=$(F90)" >> ${prefix}/README_BINARIES.txt
|
|
echo "CFLAGS=$(CFLAGS) CXXFLAGS=$(CXXFLAGS)" >> ${prefix}/README_BINARIES.txt
|
|
echo "FCFLAGS=$(FCFLAGS) F77FLAGS=$(F77FLAGS) $F90FLAGS=$(F90FLAGS)" >> ${prefix}/README_BINARIES.txt
|
|
which tar
|
|
echo "PATH: $PATH"
|
|
tar cf @BINFILE_NAME@ -C ${prefix} ${BINFILES}
|
|
gzip -f @BINFILE_NAME@
|
|
|
|
check_nc_config:
|
|
$(CC) `./nc-config --cflags` test_prog.c -o test_prog `./nc-config --libs`
|
|
./test_prog
|
|
$(F77) `./nc-config --fflags` test_prog.F -o test_prog `./nc-config --libs`
|
|
./test_prog
|
|
$(FC) `./nc-config --fflags` test_prog.f90 -o test_prog `./nc-config --libs`
|
|
./test_prog
|
|
|
|
install-data-hook:
|
|
@echo ''
|
|
@echo '+-------------------------------------------------------------+'
|
|
@echo '| Congratulations! You have successfully installed netCDF! |'
|
|
@echo '| |'
|
|
@echo '| You can use script "nc-config" to find out the relevant |'
|
|
@echo '| compiler options to build your application. Enter |'
|
|
@echo '| |'
|
|
@echo '| nc-config --help |'
|
|
@echo '| |'
|
|
@echo '| for additional information. |'
|
|
@echo '| |'
|
|
@echo '| CAUTION: |'
|
|
@echo '| |'
|
|
@echo '| If you have not already run "make check", then we strongly |'
|
|
@echo '| recommend you do so. It does not take very long. |'
|
|
@echo '| |'
|
|
@echo '| Before using netCDF to store important data, test your |'
|
|
@echo '| build with "make check". |'
|
|
@echo '| |'
|
|
@echo '| NetCDF is tested nightly on many platforms at Unidata |'
|
|
@echo '| but your platform is probably different in some ways. |'
|
|
@echo '| |'
|
|
@echo '| If any tests fail, please see the netCDF web site: |'
|
|
@echo '| http://www.unidata.ucar.edu/software/netcdf/ |'
|
|
@echo '| |'
|
|
@echo '| NetCDF is developed and maintained at the Unidata Program |'
|
|
@echo '| Center. Unidata provides a broad array of data and software |'
|
|
@echo '| tools for use in geoscience education and research. |'
|
|
@echo '| http://www.unidata.ucar.edu |'
|
|
@echo '+-------------------------------------------------------------+'
|
|
@echo ''
|
|
|
|
# If building the dll on windows, with MingW, this extra target
|
|
# # packages the results.
|
|
# win32_bin:
|
|
# @echo 'This netCDF DLL was generated using MingW.' > README_DLL.txt
|
|
# @echo '' >> README_DLL.txt
|
|
# @echo './configure --enable-dll --enable-shared --disable-separate-fortram --disable-cxx --disable-f90' >> README_DLL.txt
|
|
# @echo 'To use the DLL from C, include netcdf.h and set pre-processor macro DLL_NETCDF.' >> README_DLL.txt
|
|
# @echo 'To use the DLL from Fortran, include netcdf.inc.' >> README_DLL.txt
|
|
# cd libsrc/.libs
|
|
# lib /machine:i386 /def:libnetcdf.def
|
|
# ls
|
|
# cd ../..
|
|
# cp libsrc/.libs/netcdf.lib .
|
|
# cp libsrc/netcdf.h .
|
|
# cp fortran/netcdf.inc .
|
|
# cp ncgen3/.libs/ncgen3.exe .
|
|
# cp ncgen/.libs/ncgen.exe .
|
|
# cp ncdump/.libs/ncdump.exe .
|
|
# cp libsrc/.libs/libnetcdf-4.dll .
|
|
# cp libsrc/.libs/libnetcdf.a .
|
|
# cp libsrc/.libs/libnetcdf.dll.a .
|
|
# tar -cf win32_dll_$(VERSION).tar netcdf.h libnetcdf-4.dll README_DLL.txt netcdf.inc ncgen3.exe ncgen.exe ncdump.exe netcdf.lib
|
|
# gzip -f win32_dll_$(VERSION).tar
|
|
|
|
# # If building the dll on windows, with Cygwin, using the -mno-cygwin
|
|
# # option, this extra target packages the results.
|
|
# win32_bin_nocygwin:
|
|
# @echo 'This netCDF DLL was generated using MingW.' > README_DLL.txt
|
|
# @echo '' >> README_DLL.txt
|
|
# @echo './configure --enable-dll --enable-shared --disable-separate-fortram --disable-cxx --disable-f90' >> README_DLL.txt
|
|
# @echo 'To use the DLL from C, include netcdf.h and set pre-processor macro DLL_NETCDF.' >> README_DLL.txt
|
|
# @echo 'To use the DLL from Fortran, include netcdf.inc.' >> README_DLL.txt
|
|
# cp libsrc/netcdf.h .
|
|
# cp fortran/netcdf.inc .
|
|
# cp ncgen3/.libs/ncgen3.exe .
|
|
# cp ncgen/.libs/ncgen.exe .
|
|
# cp ncdump/.libs/ncdump.exe .
|
|
# cp libsrc/.libs/cygnetcdf-4.dll libnetcdf-4.dll
|
|
# cp libsrc/.libs/libnetcdf.a .
|
|
# cp libsrc/.libs/libnetcdf.dll.a .
|
|
# tar -cf win32_dll_$(VERSION).tar netcdf.h libnetcdf-4.dll README_DLL.txt netcdf.inc ncgen3.exe ncgen.exe ncdump.exe
|
|
# gzip -f win32_dll_$(VERSION).tar
|
|
|
|
# # If building the dll on windows, with visual studio, this extra
|
|
# # target packages the results.
|
|
# win32_vs_bin:
|
|
# @echo 'This netCDF DLL was generated using visual studio.' > README_DLL.txt
|
|
# @echo '' >> README_DLL.txt
|
|
# @echo 'To use the DLL from C, include netcdf.h and set pre-processor macro DLL_NETCDF.' >> README_DLL.txt
|
|
# @echo 'To use the DLL from Fortran, include netcdf.inc.' >> README_DLL.txt
|
|
# cp libsrc4/netcdf.h .
|
|
# cp fortran/netcdf.inc .
|
|
# cp win32/NET/Debug/ncgen.exe .
|
|
# cp win32/NET/Debug/ncdump.exe .
|
|
# cp win32/NET/Debug/netcdf.dll .
|
|
# cp win32/NET/Debug/netcdf.exp .
|
|
# cp win32/NET/Debug/netcdf.lib .
|
|
# zip win32_vs_dll_$(VERSION).zip netcdf.h netcdf.dll netcdf.lib netcdf.exp README_DLL.txt netcdf.inc ncgen.exe ncdump.exe
|
|
|