You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-astronomy/sofa_c/files/sofa_c-makefile.patch

106 lines
3.3 KiB

--- src/makefile.orig
+++ src/makefile
@@ -49,7 +49,7 @@
# Specify the installation home directory.
-INSTALL_DIR = $(HOME)
+INSTALL_DIR = $(DESTDIR)/usr
# Specify the installation directory for the library.
@@ -63,9 +63,9 @@
# of your preferred C compiler (CCOMPC) and compilation flags (CFLAGF
# for functions, CFLAGX for executables) here.
-CCOMPC = gcc
-CFLAGF = -c -pedantic -Wall -W -O
-CFLAGX = -pedantic -Wall -W -O
+CCOMPC = $(CC)
+CFLAGF = $(CPPFLAGS) -I. -c -fPIC $(CFLAGS)
+CFLAGX = $(CPPFLAGS) -I. $(CFLAGS)
#----YOU SHOULDN'T HAVE TO MODIFY ANYTHING BELOW THIS LINE---------
@@ -80,6 +80,11 @@
SOFA_LIB_NAME = libsofa_c.a
SOFA_LIB = $(SOFA_LIB_DIR)$(SOFA_LIB_NAME)
+# Name the SOFA/C library in its source and target locations.
+
+SOFA_SHLIB_NAME = libsofa_c.so
+SOFA_SHLIB = $(SOFA_LIB_DIR)$(SOFA_SHLIB_NAME)
+
# Name the SOFA/C testbed in its source and target locations.
SOFA_TEST_NAME = t_sofa_c.c
@@ -88,7 +93,7 @@
# Name the SOFA/C includes in their source and target locations.
SOFA_INC_NAMES = sofa.h sofam.h
-SOFA_INC = $(SOFA_INC_DIR)sofa.h $(SOFA_INC_DIR)sofam.h
+SOFA_INC = $(SOFA_INC_NAMES:%=$(SOFA_INC_DIR)%)
# The list of SOFA/C library object files.
@@ -321,28 +326,31 @@
#-----------------------------------------------------------------------
# Build (but do not install) the library.
-all : $(SOFA_LIB_NAME)
+all : $(SOFA_SHLIB_NAME)
-@ echo ""
-@ echo "*** Now type 'make test'" \
" to install the library and run tests ***"
-@ echo ""
# Install the library and header files.
-install $(SOFA_LIB) : $(INSTALL_DIRS) $(SOFA_LIB_NAME) $(SOFA_INC)
- cp $(SOFA_LIB_NAME) $(SOFA_LIB_DIR)
+install: $(INSTALL_DIRS) $(SOFA_SHLIB_NAME) $(SOFA_INC)
+ cp $(SOFA_SHLIB_NAME).0.0 $(SOFA_LIB_DIR)
+ ln -s $(SOFA_SHLIB_NAME).0.0 $(SOFA_SHLIB).0
+ ln -s $(SOFA_SHLIB_NAME).0 $(SOFA_SHLIB)
+
# Deinstall the library and header files.
uninstall:
- - $(RM) $(SOFA_LIB) $(SOFA_INC)
+ - $(RM) $(SOFA_LIB) $(SOFA_SHLIB)* $(SOFA_INC)
# Test the build.
-check: $(SOFA_TEST_NAME) $(SOFA_INC_NAMES) $(SOFA_LIB_NAME)
- $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) $(SOFA_LIB_NAME) \
+check: $(SOFA_TEST_NAME) $(SOFA_INC_NAMES) $(SOFA_SHLIB_NAME)
+ $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) $(SOFA_SHLIB_NAME).0.0 \
-lm -o $(SOFA_TEST)
- ./$(SOFA_TEST)
+ LD_LIBRARY_PATH="$${LD_LIBRARY_PATH}:." ./$(SOFA_TEST)
# Test the installed library.
-installcheck test: $(SOFA_TEST_NAME) $(SOFA_INC) $(SOFA_LIB)
+installcheck: $(SOFA_TEST_NAME) $(SOFA_INC) $(SOFA_LIB)
$(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) -I$(SOFA_INC_DIR) \
-L$(SOFA_LIB_DIR) -lsofa_c -lm -o $(SOFA_TEST)
./$(SOFA_TEST)
@@ -353,7 +361,7 @@
# Delete all generated binaries in the current directory.
realclean distclean : clean
- - $(RM) $(SOFA_LIB_NAME) $(SOFA_TEST)
+ - $(RM) $(SOFA_LIB_NAME) $(SOFA_SHLIB_NAME)* $(SOFA_TEST)
# Create the installation directories if not already present.
$(INSTALL_DIRS):
@@ -363,6 +371,10 @@
$(SOFA_LIB_NAME): $(SOFA_OBS)
ar ru $(SOFA_LIB_NAME) $?
+$(SOFA_SHLIB_NAME): $(SOFA_OBS)
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,$(SOFA_SHLIB_NAME).0 $? -lm -o $(SOFA_SHLIB_NAME).0.0
+ ln -sfn $(SOFA_SHLIB_NAME).0.0 $(SOFA_SHLIB_NAME).0
+
# Install the header files.
$(SOFA_INC) : $(INSTALL_DIRS) $(SOFA_INC_NAMES)
cp $(SOFA_INC_NAMES) $(SOFA_INC_DIR)