SOCK_STUFF     = sock.o 
OBJS     = auth.o tty_copy.o main.o do_login.o spawnit.o slip.o ctlp-subs.o sock_srv.o $(SOCK_STUFF)

ifeq ($(DEFTARG),OEM1) 
PIPE_ALARM_OBJ = pipe_alarm.o
endif

CFLAGS += -D$(DEFTARG) -D$(PLATFORM)

CY_RAS_OBJS = cy_ras.o rwconf.o
SOCK_OBJS     = auth.o socket.o do_login.o sock_srv.o $(SOCK_STUFF)
BUFFERING_OBJS     =  $(SOCK_STUFF) cy_buffering.o $(PIPE_ALARM_OBJ)
CY_SHM_OBJS = cy_shm.o rwconf.o rot_nports.o
TS_MENU_OBJS = ts_menu.o

LIBRARIES=-lcrypt -L$(PAM_DIR)/libpam -L$(PAM_DIR)/libpamc -L$(PAM_DIR)/libpam_misc -lpam -lpam_misc

                    
#LIBOBJS  = radclient.o lib.o lib1.o chat.o md5.o syslog.o utmp.o auth.o rot_getty.o getty.o rot_shm.o tstr.o xdebug.o rot_buf.o rot_buffer.o rot_ttys.o rot_sess1.o rot_sess.o
LIBOBJS  = lib.o lib1.o chat.o utmp.o syslog.o rot_getty.o getty.o rot_shm.o tstr.o xdebug.o rot_buf.o rot_buffer.o rot_ttys.o rot_sess.o pmc.o chkUsers.o
LIBS     = libcycl.so

LIBOBJS+=event_lib.o

PMDFLAGS = -I../../pmd/
CFLAGS += $(PMDFLAGS)

LDFLAGS += -L. -lcycl

all:    $(TARGETS) $(LIBSPM)

ts_menu: $(TS_MENU_OBJS) $(LIBS)
		$(CC) $(LDFLAGS) -o ts_menu $(TS_MENU_OBJS) 

cy_shm: $(CY_SHM_OBJS) $(LIBS)
		$(CC) $(LDFLAGS) -o cy_shm $(CY_SHM_OBJS) 

cy_buffering: $(BUFFERING_OBJS) $(LIBS) $(LIBSPM)
		$(CC) $(LDFLAGS) -o cy_buffering $(BUFFERING_OBJS) 

socket: $(SOCK_OBJS) $(LIBS) $(LIBSPM)
		$(CC) $(LDFLAGS) -o socket $(SOCK_OBJS) $(LIBRARIES)

cy_wdt_led: cy_wdt_led.o
		$(CC) $(LDFLAGS) -o cy_wdt_led cy_wdt_led.o

cy_ras: $(CY_RAS_OBJS) $(LIBS)
		$(CC) $(LDFLAGS) -o cy_ras $(CY_RAS_OBJS) 

bootconf:   bootconf.c rot_nports.o bootconf.h
		$(CC) $(CFLAGS) $(LDFLAGS) -o bootconf bootconf.c rot_nports.o

wiz:   wiz.c rot_nports.o wiz.h
		$(CC) $(CFLAGS) $(LDFLAGS) -o wiz wiz.c rot_nports.o

sh_write_evt: sh_write_evt.c $(LIBS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o sh_write_evt sh_write_evt.c $(LIBS)

portslave:	$(OBJS) $(LIBS) $(LIBPM)
		$(CC) $(LDFLAGS) -o portslave $(OBJS) $(LIBRARIES) 

ctlportslave:	ctlportslave.o
		$(CC) $(LDFLAGS) -o ctlportslave ctlportslave.o ctlp-subs.o

radinit:	radinit.o
		$(CC) $(LDFLAGS) -o radinit radinit.o

libcycl.so:	$(LIBOBJS)
		$(CC) -shared $(LIBOBJS)  -o libcycl.so

cy_alarm : 	cy_alarm.c $(LIBS)
		$(CC) $(CFLAGS) $(LDFLAGS) -o cy_alarm cy_alarm.c 

modbusd: modbusd.c modbusaux.c modbus.h server.h rwconf.h Makefile \
../Makefile ../../linux/include/asm/frame_mode.h
		$(CC) $(CFLAGS) $(LDFLAGS) -o modbusd modbusd.c modbusaux.c 

billing: billing.c billing.h server.h rwconf.h Makefile ../Makefile
		$(CC) $(CFLAGS) $(LDFLAGS) -o billing billing.c rot_nports.o

modem-replace: modem-replace.c modem-replace.h server.h rwconf.h Makefile ../Makefile
		$(CC) $(CFLAGS) $(LDFLAGS) -o modem-replace modem-replace.c rot_nports.o

2way-raw: 2way-raw.c 2way-raw.h server.h rwconf.h Makefile ../Makefile
		$(CC) $(CFLAGS) $(LDFLAGS) -o 2way-raw 2way-raw.c rot_nports.o

pu: 	pu.o
		$(CC) $(LDFLAGS) -o pu pu.o

puconnect: puconnect.c puconnect.h server.h Makefile ../Makefile
		$(CC) $(CFLAGS) $(LDFLAGS) -o puconnect puconnect.c rot_nports.o

showsensor: 	showsensor.o
		$(CC) $(LDFLAGS) -o showsensor showsensor.o

sm: 	sm.o
		$(CC) $(LDFLAGS) -o sm sm.o

ifeq ($(TARG),sm100)

cdk_sm100: sm_bin sm100_clean

ifeq ($(WITH_CDK),yes)

sm.o: sm_bin/sm.o
	cp -af $< $@

else

sm_bin: sm.o
	install -d sm_bin
	cp -af $? sm_bin

endif
else

cdk_sm100: sm100_clean

endif

sm100_clean: sm.c
	rm -f $?

clean:
		rm -f *~ *.o *.a modbusd billing modem-replace 2way-raw pu puconnect $(TARGETS)

