aboutsummaryrefslogtreecommitdiff
path: root/vendor/voclient/voapps/lib/Makefile
blob: 166d64b6e93a2141fa6f2fdaab9a1c68c9dcab83 (plain) (blame)
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
#///////////////////////////////////////////////////////////////////////////////
#//
#//  Makefile for the VOClient Package Applications
#//
#///////////////////////////////////////////////////////////////////////////////

# primary dependencies

NAME       	= VOApps
VERSION    	= 1.0
PLATFORM        := $(shell uname -s)
PLMACH          := $(shell uname -m)
HERE            := $(shell /bin/pwd)
BINDIR          := ../../bin/
LIBDIR          := ../../lib/
INCDIR          := ../../include/


# secondary dependencies
LIBBASE     = ../lib$(NAME)
STATICLIB   = $(HERE)/$(LIBBASE).a
SHAREDLIB   = $(HERE)/$(LIBBASE).so.$(VERSION)


# stuff that's precious to keep
.PRECIOUS:	$(STATICLIB) $(SHAREDLIB)
.KEEP_STATE:


# includes, flags and libraries
CC 	    = gcc
CINCS  	    = -I$(HERE) -I../ -I../../include -I../../../../include -L../../lib/


ifeq ($(PLATFORM),Darwin)
    ifeq  ($(PLMACH),x86_64)
        CARCH   = -m64 -mmacosx-version-min=10.5
    else
        CARCH   = -arch i386 -m32 -mmacosx-version-min=10.4
    endif
    ifdef IRAFARCH
        ifeq ($(IRAFARCH),macintel)
            CARCH = -m64 -mmacosx-version-min=10.5
        else
            CARCH = -arch i386 -m32 -mmacosx-version-min=10.5
        endif
    endif
else
    CLIBS       = -lm -lc -lcurl -lpthread
    CARCH       =
endif

CLIBS           = -lm -lc -lcurl -lpthread -lm
CFLAGS          = -g -Wall $(CARCH) -D$(PLATFORM) $(CINCS) -L./





# list of source and include files

SRCS 	    = voObj.c voSvc.c voAclist.c voDALUtil.c voFITS.c voUtil.c \
              voSCS.c voSIAP.c voSSAP.c voUtil.c voRanges.c voLog.c \
              voKML.c voXML.c voHTML.c voTask.c voParams.c vosUtil.c
OBJS 	    = voObj.o voSvc.o voAclist.o voDALUtil.o voFITS.o voUtil.o \
              voSCS.o voSIAP.o voSSAP.o voUtil.o voRanges.o voLog.o \
              voKML.o voXML.o voHTML.o voTask.o voParams.o vosUtil.o
INCS 	    = ../voApps.h ../voAppsP.h


all:    lib

install: all

objs:   $(OBJS)


# Targets

clean:
	/bin/rm -rf .make.state .nse_depinfo *.[aeo] *.dSYM
	/bin/rm -rf $(TARGETS)

everything:
	make clean
	make all
	make install

help: HELP

install: all 



####################################
#  LIBVOAPPS dependency libraries.
####################################

lib: objs
	ar rv ../lib$(NAME).a $(OBJS)
	$(RM) $(OBJS)



###############################################################################
# Unit test programs to be built.
###############################################################################

demo:	$(TARGETS)

zztest:  zztest.c
	$(CC) $(CFLAGS) -o zztest zztest.c $(LIBS)



###############################################################################
# Leave this stuff alone.
###############################################################################

$(STATICLIB): $(C_SRCS:%.c=Static/%.o)
	/usr/bin/ar rv $@ $?
Static/%.o: %.c $(C_INCS)
	/usr/bin/gcc $(CINCS) $(CFLAGS) -c $< -o $@
Static:
	/bin/mkdir $@
	chmod 777 $@

$(SHAREDLIB): $(C_SRCS:%.c=Shared/%.o)
	/usr/bin/ld -shared -o $@ $? -lc -ldl
Shared/%.o: %.c $(C_INCS)
	/usr/bin/gcc $(CINCS) $(CFLAGS) -fpic -shared -c $< -o $@
Shared:
	/bin/mkdir $@
	chmod 777 $@