# This Makefile will work only with GNU make.

GLOBAL_PREFIX ?=

CC = $(GLOBAL_PREFIX)gcc
AR = $(GLOBAL_PREFIX)ar
RANLIB = $(GLOBAL_PREFIX)ranlib
STRIP = $(GLOBAL_PREFIX)strip

VPATH = ..

OPTFLAGS ?= -g -Os -Wall -fsigned-char -Wno-unused -D_GNU_SOURCE

WARNFLAGS ?= -Wall -Wstrict-prototypes

CFLAGS += $(OPTFLAGS) $(WARNFLAGS) -I$(VPATH)/include 

CFLAGS += -DINCLUDE_ISCSI 
CFLAGS += -D_GNU_SOURCE


PROGRAMS = iscsid


# sources shared between iscsid, iscsiadm and iscsistart
COMMON_SOURCE = $(VPATH)/util.c $(VPATH)/io.c $(VPATH)/auth.c $(VPATH)/login.c $(VPATH)/md5.c $(VPATH)/iface.c $(VPATH)/idbm.c $(VPATH)/sysdeps.c $(VPATH)/sysfs.c $(VPATH)/iscsi_sysfs.c $(VPATH)/netlink.c $(VPATH)/io.c
COMMON_SRCS = $(patsubst %.c, %.o, $(COMMON_SOURCE))
# sources shared between iscsid and iscsiadm

# core initiator files
INITIATOR_SOURCE = initiator.c scsi.c actor.c mgmt_ipc.c transport.c
INITIATOR_SRCS = $(patsubst %.c, %.o, $(INITIATOR_SOURCE))
#iscsid files
ISCSID_SRCS = iscsid.c
ISCSID_OBJS = $(patsubst %.c, %.o, $(ISCSID_SRCS))




LDFLAGS +=  -lpthread  -lcrypt -lrt #-lcomutil -ldbg -lhpr


all: $(PROGRAMS)
iscsid: $(COMMON_SRCS) $(INITIATOR_SRCS) $(ISCSID_OBJS)
	$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
	$(STRIP) $@
	$(STRIP) -x -R .note -R .comment $@
#	mv $@ $(G_DIR_PACK)

clean:
	rm -f *.o $(PROGRAMS) .depend

depend:
	gcc $(CFLAGS) -M `ls *.c` > .depend

-include .depend
