GNUmakefile.in 3.26 KB
Newer Older
1 2 3
#
# Insert Copyright Here.
#
4 5
SRCDIR		= @srcdir@
TESTBED_SRCDIR	= @top_srcdir@
6
EVENTSYS	= @EVENTSYS@
7 8
OBJDIR		= ..
SUBDIR		= tmcd
9

10 11
SYSTEM	       := $(shell uname -s)

12
include $(OBJDIR)/Makeconf
13

14 15 16
all:	server fullclient client
fullclient: tmcc
client: tmcc-nossl findif
17
server: tmcd tmcd.restart
18

19
include $(TESTBED_SRCDIR)/GNUmakerules
20

21 22 23 24 25 26 27
CFLAGS	+= -O -g -Wall -DUDP \
		-I${OBJDIR} -I/usr/local/include -I${TESTBED_SRCDIR}/lib/libtb
TMLIBS	 = ${OBJDIR}/lib/libtb/libtb.a

#
# For SSL enabled tmcd/tmcc
#
28 29
CFLAGS	+= -DETCDIR='"$(INSTALL_ETCDIR)"'
SSLFLAGS = -DWITHSSL 
30 31
TMLIBS	+= -lssl -lcrypto
SSLOBJ   = ssl.o
32

33
ifeq ($(SYSTEM),Linux)
34
RHLVERSION    := $(shell cat /etc/redhat-release | sed -e 's/Red Hat Linux release \([0-9]\).*/Linux\1/')
35 36 37 38 39
NEEDKERB := $(shell nm /usr/lib/libssl.a | grep -q krb; echo $$?)
ifeq ($(NEEDKERB),0)
 CFLAGS   += `/usr/kerberos/bin/krb5-config --cflags`
 TMLIBS   += `/usr/kerberos/bin/krb5-config --libs krb5`
endif
40
TMLIBS  += -ldl
41 42 43
ifeq ($(RHLVERSION),Linux9)
MDSUBDIR  = linux9
else
Mike Hibler's avatar
Mike Hibler committed
44 45
MDSUBDIR  = linux
endif
46
endif
47

Mike Hibler's avatar
Mike Hibler committed
48
ifeq ($(SYSTEM),FreeBSD)
49 50 51 52
FBSDVERSION    := $(shell uname -v | sed -e 's/FreeBSD \([0-9]\).*/FreeBSD\1/')
ifeq ($(FBSDVERSION),FreeBSD5)
MDSUBDIR  = freebsd5
else
Mike Hibler's avatar
Mike Hibler committed
53
MDSUBDIR  = freebsd
54
endif
55
endif
56

57 58 59
ifeq ($(SYSTEM),CYGWIN_NT-5.1)
# Cygwin on  Windows XP (a.k.a. NT 5.1) - resembles the Linux case.
MDSUBDIR  = cygwinxp
60
TMSLIBS   += -lminires
61 62
endif

Kirk Webb's avatar
 
Kirk Webb committed
63 64 65 66
ifeq ($(host_cpu),arm)
MDSUBDIR  = linux-sg
endif

67
ifeq ($(EVENTSYS),1)
68
	TMCDCFLAGS = `elvin-config --cflags vin4c` \
69
		     -I$(TESTBED_SRCDIR)/event/lib -DEVENTSYS
70
	TMCDLIBS    = ${OBJDIR}/event/lib/libevent.a
71 72
	ELVINFLAGS = `elvin-config --libs vin4c`
endif
73

74
tmcd: tmcd.c ${TMCDLIBS} decls.h version.o $(SSLOBJ)
75
	$(CC) $(CFLAGS) $(SSLFLAGS) $(TMCDCFLAGS) -o tmcd $< \
76 77 78
		version.o $(SSLOBJ) \
		$(LFLAGS) -L/usr/local/lib/mysql -lmysqlclient \
		$(ELVINFLAGS) $(TMCDLDFLAGS) $(TMCDLIBS) $(TMLIBS) 
79

80 81 82 83
tmcc: tmcc.c decls.h $(SSLOBJ)
	$(CC) $(CFLAGS) $(SSLFLAGS) -static -g -o tmcc $< $(SSLOBJ) \
		$(LFLAGS) $(TMLIBS)

84 85 86 87
tmcc-shared: tmcc.c decls.h $(SSLOBJ)
	$(CC) $(CFLAGS) $(SSLFLAGS) -g -o tmcc $< $(SSLOBJ) \
		$(LFLAGS) $(TMLIBS)

Timothy Stack's avatar
 
Timothy Stack committed
88 89
tmcc-nossl-debug: tmcc.c decls.h
	$(CC) $(CFLAGS) -static -g -o $@ $< $(LFLAGS) $(TMSLIBS)
90

Timothy Stack's avatar
 
Timothy Stack committed
91 92
findif-debug: findif.o
	$(CC) $(CFLAGS) -g -o $@ findif.o $(LFLAGS) -static
93

94
ssl.o:	ssl.c ssl.h decls.h
95

96 97 98
version.c: tmcd.c
	echo >$@ "char build_info[] = \"Built `date +%d-%b-%Y` by `id -nu`@`hostname | sed 's/\..*//'`:`pwd`\";"

99 100
install:	all

101 102
install:	$(INSTALL_SBINDIR)/tmcd \
		$(INSTALL_SBINDIR)/tmcd.restart
103 104
	$(INSTALL_PROGRAM) $(SRCDIR)/common/config/rc.mkelab \
			   $(INSTALL_ETCDIR)/rc.mkelab
105

106
control-install: tmcc
107
	@$(MAKE) -C freebsd control-install
108

109
client-install: client
Mike Hibler's avatar
Mike Hibler committed
110
	@$(MAKE) -C $(MDSUBDIR) install
111

Mike Hibler's avatar
Mike Hibler committed
112 113 114 115 116
mfs: client

mfs-install: mfs
	@$(MAKE) -C $(MDSUBDIR) mfs-install

117 118 119 120 121
frisbee-mfs: client

frisbee-mfs-install: frisbee-mfs
	@$(MAKE) -C $(MDSUBDIR) frisbee-mfs-install

122 123 124 125 126
$(INSTALL_BINDIR)/tmcd/%: %
	@echo "Installing $<"
	-mkdir -p $(INSTALL_BINDIR)/tmcd
	$(INSTALL_PROGRAM) $< $@

127 128 129 130 131 132 133 134 135
#
# Here so that the event system libraries, and libraries they depend upon,
# can get made.
#
${OBJDIR}/event/lib/%:
	cd ${OBJDIR}/event/lib && gmake $<
${OBJDIR}/lib/libtb/%:
	cd ${OBJDIR}/lib/tbdb && gmake $<

Mike Hibler's avatar
Mike Hibler committed
136 137 138 139 140
clean:	subdir-clean
	rm -f *.o core tmcd tmcc tmcc-nossl findif version.c

subdir-clean:
	@$(MAKE) -C $(MDSUBDIR) clean