mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-23 07:29:19 +02:00
Closes: https://bugs.gentoo.org/794757 Closes: https://bugs.gentoo.org/924304 Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
105 lines
3.3 KiB
Diff
105 lines
3.3 KiB
Diff
--- a/makefile
|
|
+++ b/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 -O
|
|
-CFLAGX = -pedantic -Wall -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.
|
|
|
|
@@ -347,28 +352,30 @@
|
|
#-----------------------------------------------------------------------
|
|
|
|
# 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) \
|
|
- -I. -lm -o $(SOFA_TEST)
|
|
- ./$(SOFA_TEST)
|
|
+check: $(SOFA_TEST_NAME) $(SOFA_INC_NAMES) $(SOFA_SHLIB_NAME)
|
|
+ $(CCOMPC) $(CFLAGX) $(SOFA_TEST_NAME) $(SOFA_SHLIB_NAME).0.0 \
|
|
+ -lm -o $(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)
|
|
@@ -379,7 +386,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):
|
|
@@ -389,6 +396,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)
|