1#-------------------------------------------------------------------------------
2# SuiteSparse_config Makefile
3#-------------------------------------------------------------------------------
4
5SUITESPARSE ?= $(realpath $(CURDIR)/..)
6export SUITESPARSE
7
8# version of SuiteSparse_config is also version of SuiteSparse meta-package
9LIBRARY = libsuitesparseconfig
10VERSION = 5.10.1
11SO_VERSION = 5
12
13default: library
14
15include SuiteSparse_config.mk
16
17ccode: all
18
19all: library
20
21# compile and install in SuiteSparse/lib
22library: $(AR_TARGET)
23	$(MAKE) install INSTALL=$(SUITESPARSE)
24
25OBJ = SuiteSparse_config.o
26
27SuiteSparse_config.o: SuiteSparse_config.c SuiteSparse_config.h
28	$(CC) $(CF) -c SuiteSparse_config.c
29
30static: $(AR_TARGET)
31
32$(AR_TARGET): $(OBJ)
33	$(ARCHIVE) $(AR_TARGET) SuiteSparse_config.o
34	$(RANLIB) $(AR_TARGET)
35
36distclean: purge
37
38purge: clean
39	( cd xerbla ; $(MAKE) purge )
40	- $(RM) -r $(PURGE)
41
42clean:
43	( cd xerbla ; $(MAKE) clean )
44	- $(RM) -r $(CLEAN)
45
46# install SuiteSparse_config
47install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
48
49$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
50	@mkdir -p $(INSTALL_LIB)
51	@mkdir -p $(INSTALL_INCLUDE)
52	@mkdir -p $(INSTALL_DOC)
53	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
54	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
55	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
56	$(CP) SuiteSparse_config.h $(INSTALL_INCLUDE)
57	$(CP) README.txt $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
58	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
59	chmod 755 $(INSTALL_LIB)/$(SO_PLAIN)
60	chmod 644 $(INSTALL_INCLUDE)/SuiteSparse_config.h
61	chmod 644 $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
62
63# uninstall SuiteSparse_config
64uninstall:
65	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
66	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
67	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
68	$(RM) $(INSTALL_INCLUDE)/SuiteSparse_config.h
69	$(RM) $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
70	( cd xerbla ; $(MAKE) uninstall )
71
72
73