#
# Makefile for IPC / CYGWIN32 Version 1.02
#



VERSION_NUM = 1.03

# installation path for executables
IEDIR = ../bin

# installation path for libraries
ILDIR = ../lib

# misc configuration flags.
#
# possible flags are:
# -DSHMAT_LINUX : allows the use of linux-style shmat declaration
# -DTRACE : create a library that outputs every call on stderr

CONF_FLAGS = #-DTRACE # -DSHMAT_LINUX




################################################


INCLUDES = -I../include -I..
LIBDIR = -L../lib


CFLAGS_alpha =
CFLAGS_i386  = -pipe
CFLAGS_i486  = $(CFLAGS_i386) -m486 
CFLAGS_i586  = $(CFLAGS_i486) -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2
LDFLAGS_alpha =
LDFLAGS_i386  =
LDFLAGS_i486  = $(LDFLAGS_i386)
LDFLAGS_i586  = $(LDFLAGS_i386)

CDEBUGFLAGS =   # -ggdb

CPPFLAGS = -DVERSION_NUM=$(VERSION_NUM) $(INCLUDES)
CFLAGS = -Wall -O2 $(CDEBUGFLAGS) $(CFLAGS_586)
LDFLAGS = $(LDFLAGS_i586) $(LIBDIR)

export CFLAGS


############  END  OF  USER  CONFIGURATION  #################################

SRCS = $(wildcard *.c)

EXE = $(IEDIR)/ipc-daemon.exe $(IEDIR)/ipcs $(IEDIR)/ipcrm $(IEDIR)/ipctest \
	$(IEDIR)/ipck

LIB = $(ILDIR)/libcygipc.a

#
# standard targets
#

default: user

all: user

user: $(LIB) $(EXE)

#
# Object files
#

IPCD_OBJECTS = ipc-daemon.o
IPCS_OBJECTS = ipcs.o 
IPCRM_OBJECTS = ipcrm.o
TEST_OBJECTS = ipctest.o
LIB_OBJECTS = version.o sem.o shm.o msg.o itoa.o reverse.o strace.o

#
# UNIX targets
#

$(LIB):	$(LIB_OBJECTS)
	$(AR) $(ARFLAGS) $@ $?
	ranlib $@

../bin/ipc-daemon.exe: $(IPCD_OBJECTS) $(LIB)
	$(CC) -mwindows -W1, --subsystem,windows $(LDFLAGS) $+ -o $@

../bin/ipcs: $(IPCS_OBJECTS) $(LIB)
	$(CC) $(LDFLAGS) $+ -o $@

../bin/ipcrm: $(IPCRM_OBJECTS) $(LIB)
	$(CC) $(LDFLAGS) $+ -o $@

../bin/ipctest: $(TEST_OBJECTS) $(LIB)
	$(CC) $(LDFLAGS) $+ -o $@

../bin/ipck: ipck
	cp $+ $@

#
# install/clean targets
#


clobj:
	$(RM) *~ *.o

clexe:
	$(RM) $(EXE)
	$(RM) $(LIB)
	
cldep:
	$(RM) *.dep

clean:	clobj cldep

realclean: clobj clexe cldep

#
# dependencies
#

%.dep: %.c
	@echo "Building "$@" from "$<
	@$(SHELL) -ec 'gcc -MM $(CPPFLAGS) $< > $@'

# Including all dep files
-include $(SRCS:.c=.dep)


