# Makefile - keep the upper hand.
#
# 2002.02.07 - Albert Huang
#
#	- Conditional make for Windows NT (cygnwin)
#	- $CC defined
#
#	- shared library only compiles for Solaris.  linux untested.  windows NYI

include ../Makefile.common

LNP_LISTEN=lnp_listen$(EXT)
LNP_RLISTEN=lnp_reliable_listen$(EXT)
GETLOG=getlog$(EXT)
CHANGE_BA=changeBrickAddress$(EXT)

COMMON_SRCS=lnp-host.c rcxtty.c keepalive.c ../../kernel/lnp.c
LIB_SRCS=lnp-host.c rcxtty.c keepalive.c ../../kernel/lnp.c ../../kernel/lnp-reliable.c

L_SRCS=lnp_listen.c
RL_SRCS=lnp_reliable_listen.c ../../kernel/lnp-reliable.c
GL_SRCS=getlog.c ../../kernel/lnp-reliable.c
CBA_SRCS=changeBrickAddress.c

SHARED_LIBRARY=liblnp_host.so

COMMON_OBJS=$(COMMON_SRCS:.c=.o)
LIB_OBJS=$(LIB_SRCS:.c=.o)
L_OBJS=$(L_SRCS:.c=.o)
RL_OBJS=$(RL_SRCS:.c=.o)
GL_OBJS=$(GL_SRCS:.c=.o)
CBA_OBJS=$(CBA_SRCS:.c=.o)

ALL_TARGETS=$(LNP_LISTEN) $(LNP_RLISTEN) $(GETLOG) $(CHANGE_BA)
LIBS= -lpthread -mt

CFLAGS+=-O2 -Wall -I. -I../../include/lnp $(OS_FLAGS)

#
# Debian GNU/Linux
# 
ifneq (,$(findstring $(OSTYPE),linux-gnu Linux))
LIBS= -lpthread
CFLAGS=-g -Wall -I. -I../../include/lnp $(OS_FLAGS) -D_XOPEN_SOURCE=500
endif

all:  depend $(ALL_TARGETS) 
	cp -f $(ALL_TARGETS) ..

library: $(SHARED_LIBRARY)

$(SHARED_LIBRARY): $(LIB_OBJS)
	$(CC) -G -o $@ $(LIB_OBJS) $(CFLAGS) $(LIBS)

clean:
	rm -f *.o *~ *.bak $(ALL_TARGETS) lnp.c $(SHARED_LIBRARY)

depend: $(L_SRCS) $(RL_SRCS) $(GL_SRCS)
	$(CC) -M $(CFLAGS) -c $(L_SRCS) $(RL_SRCS) $(GL_SRCS) >.depend

$(LNP_LISTEN): $(COMMON_OBJS) $(L_OBJS)
	$(CC) -o $(LNP_LISTEN) $(COMMON_OBJS) $(L_OBJS) $(CFLAGS) $(LIBS)

$(LNP_RLISTEN): $(COMMON_OBJS) $(RL_OBJS)
	$(CC) -o $(LNP_RLISTEN) $(COMMON_OBJS) $(RL_OBJS) $(CFLAGS) $(LIBS)

$(GETLOG): $(COMMON_OBJS) $(GL_OBJS)
	$(CC) -o $(GETLOG) $(COMMON_OBJS) $(GL_OBJS) $(CFLAGS) $(LIBS)

$(CHANGE_BA): $(COMMON_OBJS) $(CBA_OBJS)
	$(CC) -o $(CHANGE_BA) $(COMMON_OBJS) $(CBA_OBJS) $(CFLAGS) $(LIBS)

lnp.c:
	$(LN_S) ../../kernel/lnp.c lnp.c

test: lnp_listen.o
	$(CC) -o test -L./ -R./ -llnp_host lnp_listen.o

%.o: %.c
	$(CC) -o $@ -c $< $(CFLAGS)

%$(EXT): %.c
	$(CC) -o $@ $< $(CFLAGS)

# DO NOT DELETE
