GNUmakefile
2.58 KB
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
#-------------------------------------------------------------------------------
# AMD Makefile for compiling on Unix systems (for GNU make only)
#-------------------------------------------------------------------------------
default: ../Lib/libamd.a
include ../../UFconfig/UFconfig.mk
C = $(CC) $(CFLAGS) $(CONFIG) -I../Include -I../../UFconfig
#-------------------------------------------------------------------------------
# source files
#-------------------------------------------------------------------------------
AMD = amd_aat amd_1 amd_2 amd_dump amd_postorder amd_post_tree amd_defaults \
amd_order amd_control amd_info amd_valid amd_preprocess
UFCONFIG = ../../UFconfig/UFconfig.h
INC = ../Include/amd.h ../Include/amd_internal.h $(UFCONFIG)
#-------------------------------------------------------------------------------
# object files for each version
#-------------------------------------------------------------------------------
AMDI = $(addsuffix .o, $(subst amd_,amd_i_,$(AMD)))
AMDL = $(addsuffix .o, $(subst amd_,amd_l_,$(AMD)))
#-------------------------------------------------------------------------------
# compile each int and long routine (with no real/complex version)
#-------------------------------------------------------------------------------
amd_global.o: ../Source/amd_global.c $(INC)
$(C) -c $< -o $@
amd_i_%.o: ../Source/amd_%.c $(INC)
$(C) -DDINT -c $< -o $@
amd_l_%.o: ../Source/amd_%.c $(INC)
$(C) -DDLONG -c $< -o $@
#-------------------------------------------------------------------------------
# Create the libamd.a library (C versions only)
#-------------------------------------------------------------------------------
../Lib/libamd.a: amd_global.o $(AMDI) $(AMDL)
$(AR) ../Lib/libamd.a $^
- $(RANLIB) ../Lib/libamd.a
#-------------------------------------------------------------------------------
# compile the Fortran versions and the libamdf77.a library
#-------------------------------------------------------------------------------
fortran: ../Lib/libamdf77.a
AMDF77 = amd.o amdbar.o
amd.o: ../Source/amd.f
$(F77) $(F77FLAGS) -c ../Source/amd.f -o amd.o
amdbar.o: ../Source/amdbar.f
$(F77) $(F77FLAGS) -c ../Source/amdbar.f -o amdbar.o
../Lib/libamdf77.a: $(AMDF77)
$(AR) ../Lib/libamdf77.a $^
- $(RANLIB) ../Lib/libamdf77.a
#-------------------------------------------------------------------------------
# Remove all but the files in the original distribution
#-------------------------------------------------------------------------------
clean:
- $(RM) $(CLEAN)
purge: distclean
distclean: clean
- $(RM) ../Lib/libamd.a ../Lib/libamdf77.a