
NAME			:= rigup
VERSION			:= 0.4.1
DISTDIR			:= $(NAME)-$(VERSION)
DISTZIP			:= $(NAME)-$(VERSION).zip

CFLAGS			:= -Wall -O2 -std=c99 -D_POSIX_C_SOURCE=200809L -ffunction-sections -DRIGUP_VERSION=\"$(VERSION)\"
LDFLAGS			:= -O2 -Wl,-dead_strip
LIBS			:= -lm

SRC_DIR			:= src
SRC_OBJS		:= $(patsubst %.c,%.o,$(wildcard $(SRC_DIR)/*.c))
SRC_HEADERS		:= $(wildcard $(SRC_DIR)/*.h)

OPENSSL_DIR		:= $(SRC_DIR)/openssl
OPENSSL_OBJS		:= $(patsubst %.c,%.o,$(wildcard $(OPENSSL_DIR)/*.c))
OPENSSL_HEADERS		:= $(wildcard $(OPENSSL_DIR)/*.h)

MIRACL_DIR		:= $(SRC_DIR)/miracl
MIRACL_OBJS		:= $(patsubst %.c,%.o,$(wildcard $(MIRACL_DIR)/*.c))
MIRACL_HEADERS		:= $(wildcard $(MIRACL_DIR)/*.h)

PBL_DIR			:= $(SRC_DIR)/pbl
PBL_OBJS		:= $(patsubst %.c,%.o,$(wildcard $(PBL_DIR)/*.c))
PBL_HEADERS		:= $(wildcard $(PBL_DIR)/*.h)

TARGET			:= $(NAME)


all:			$(TARGET)

clean:
			rm -f $(SRC_DIR)/*.o
			rm -f $(OPENSSL_DIR)/*.o
			rm -f $(MIRACL_DIR)/*.o
			rm -f $(PBL_DIR)/*.o
			rm -f $(TARGET)

distclean:
			$(MAKE) clean
			rm -rf $(DISTDIR)
			rm -f $(DISTZIP) $(TARGET).exe

dist:
			$(MAKE) distclean
			mkdir -p $(DISTDIR)
			cp -a $(SRC_DIR) $(DISTDIR)
			$(MAKE) win32
			cp -a *.exe $(DISTDIR)
			$(MAKE) clean
			$(MAKE) all
			cp -a $(TARGET) Makefile README.TXT tools $(DISTDIR)
			zip -r9X $(DISTZIP) $(DISTDIR)

win32:
			$(MAKE) clean
			$(MAKE) CC=i686-w64-mingw32-gcc
			mv $(TARGET) $(TARGET).exe
			chmod 644 $(TARGET).exe

$(TARGET):		$(SRC_OBJS) $(OPENSSL_OBJS) $(MIRACL_OBJS) $(PBL_OBJS)
			$(CC) $(LDFLAGS) $^ $(LIBS) -o $@

$(SRC_OBJS):		$(SRC_HEADERS) $(OPENSSL_HEADERS) $(MIRACL_HEADERS) $(PBL_HEADERS)
$(OPENSSL_OBJS):	$(OPENSSL_HEADERS)
$(MIRACL_OBJS):		$(MIRACL_HEADERS)
$(PBL_OBJS):		$(PBL_HEADERS)
