File: Makefile

package info (click to toggle)
pyferret 7.0.0-2
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 117,852 kB
  • ctags: 21,106
  • sloc: fortran: 214,303; ansic: 25,025; python: 23,717; java: 1,755; sh: 1,375; makefile: 978; pascal: 569; csh: 285; awk: 18
file content (159 lines) | stat: -rw-r--r-- 5,564 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#
# Makefile for building and installing the pyferret module
# and the modules and libraries associated with it.
#

# Site-specific defines
include site_specific.mk

# Platform-specific defines
include platform_specific.mk.$(BUILDTYPE)

.PHONY : all
all : optimized

.PHONY : optimized
optimized :
	mkdir -p $(DIR_PREFIX)/lib
	$(MAKE) -C $(DIR_PREFIX)/fer optimized
	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
	$(MAKE) pymod_optimized_build
	$(MAKE) pymod_optimized_install
	$(MAKE) externals_optimized
	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix

.PHONY : beta
beta :
	mkdir -p $(DIR_PREFIX)/lib
	$(MAKE) -C $(DIR_PREFIX)/fer beta
	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
	$(MAKE) pymod_optimized_build
	$(MAKE) pymod_optimized_install
	$(MAKE) externals_optimized
	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix

.PHONY : debug
debug :
	mkdir -p $(DIR_PREFIX)/lib
	$(MAKE) -C $(DIR_PREFIX)/fer debug
	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
	$(MAKE) pymod_debug_build
	$(MAKE) pymod_debug_install
	$(MAKE) externals_debug
	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix

## The following does an optimized build of libpyferret.so
.PHONY : pymod_optimized_build
pymod_optimized_build :
	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
	( cd $(DIR_PREFIX) ; \
	  export CC=$(CC) ; \
	  export CFLAGS="$(CFLAGS) -O" ; \
	  export BUILDTYPE=$(BUILDTYPE) ; \
	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
	  export LDFLAGS="$(LDFLAGS) -Wl,--soname=libpyferret.so" ;\
	  $(PYTHON_EXE) setup.py --verbose build )

## The following installs libpyferret.so and optimized 
## versions of all the python scripts into $(DIR_PREFIX)/install.
.PHONY : pymod_optimized_install
pymod_optimized_install :
	rm -fr $(DIR_PREFIX)/install
	( cd $(DIR_PREFIX) ; \
	  export CC=$(CC) ; \
	  export CFLAGS="$(CFLAGS) -O" ; \
	  export BUILDTYPE=$(BUILDTYPE) ; \
	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
	  export LDFLAGS="$(LDFLAGS) -Wl,--soname=libpyferret.so" ;\
	  $(PYTHON_EXE) setup.py --verbose install -O2 --prefix=$(DIR_PREFIX)/install )

.PHONY : externals_optimized
externals_optimized :
	$(MAKE) "FER_DIR = $(DIR_PREFIX)/install" -C $(DIR_PREFIX)/external_functions optimized

## The following does a debug build of libpyferret.so
.PHONY : pymod_debug_build
pymod_debug_build :
	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
	( cd $(DIR_PREFIX) ; \
	  export CC=$(CC) ; \
	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
	  export BUILDTYPE=$(BUILDTYPE) ; \
	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
	  $(PYTHON_EXE) setup.py build -g )

## The following installs libpyferret.so and unoptimized
## versions of all the python scripts into $(DIR_PREFIX)/install.
.PHONY : pymod_debug_install
pymod_debug_install :
	rm -fr $(DIR_PREFIX)/install
	( cd $(DIR_PREFIX) ; \
	  export CC=$(CC) ; \
	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
	  export BUILDTYPE=$(BUILDTYPE) ; \
	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
	  $(PYTHON_EXE) setup.py install -O0 --prefix=$(DIR_PREFIX)/install )

.PHONY : externals_debug
externals_debug :
	$(MAKE) "FER_DIR = $(DIR_PREFIX)/install" -C $(DIR_PREFIX)/external_functions debug

## Remove everything that was built
.PHONY : clean
clean :
	$(MAKE) -C $(DIR_PREFIX)/bench clean
	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix clean
	$(MAKE) -C $(DIR_PREFIX)/external_functions clean
        # rm -fr $(DIR_PREFIX)/install $(DIR_PREFIX)/build ferret.jnl*
	find $(DIR_PREFIX)/pviewmod -name '*.py[co]' -exec rm -f {} ';'
	find $(DIR_PREFIX)/pyfermod -name '*.py[co]' -exec rm -f {} ';'
	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser clean
	$(MAKE) -C $(DIR_PREFIX)/fer clean
	rm -fr $(DIR_PREFIX)/lib

## Install Ferret binaries, scripts, and other files into $(INSTALL_FER_DIR)
.PHONY : install
install :
	rm -f pyferret-latest-local.tar.gz
	bin/make_dist_tar . latest local . -y
	mkdir -p $(INSTALL_FER_DIR)
	mv -f pyferret-latest-local.tar.gz $(INSTALL_FER_DIR)
	( cd $(INSTALL_FER_DIR) ; tar xz --strip-components=1 -f pyferret-latest-local.tar.gz )

## The following is for installing the updated threddsBrowser.jar, ferret_ef_meme_subsc.so,
## libpyferret.so, and PyFerret python scripts into $(INSTALL_FER_DIR)/lib without having 
## to use the distribution tar file.  Also copies all the PyFerret Fortran external function 
## to the $(INSTALL_FER_DIR)/ext_func/pylibs directory.
.PHONY : update
update :
	mkdir -p $(INSTALL_FER_DIR)/lib
	cp -f $(DIR_PREFIX)/threddsBrowser/threddsBrowser.jar $(INSTALL_FER_DIR)/lib
	find $(DIR_PREFIX)/external_functions -type f -perm -100 -name \*.so -exec cp {} $(INSTALL_FER_DIR)/ext_func/pylibs \;
	( cd $(DIR_PREFIX) ; \
	  export CC=$(CC) ; \
	  export CFLAGS="$(CFLAGS) -O" ; \
	  export BUILDTYPE=$(BUILDTYPE) ; \
	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
	  $(PYTHON_EXE) setup.py --verbose install -O2 --prefix=$(INSTALL_FER_DIR) )

## Execute the RUN_TESTS.sh tests
.PHONY : run_tests
run_tests :
	$(MAKE) -C $(DIR_PREFIX)/bench run_tests

##