
# bin\ogen.exe rocs.xml
# md bin
# cd bin
# del \Q *.*
# gcc -g -c -I..\.. ..\impl\*.c
# rem cl \c \MD \D__OPENSSL__ \I..\.. ..\impl\win\*.c
# gcc -g -c -I..\.. ..\impl\win\*.c
# ar rcs librocs.a *.o
# gcc -g -c -I..\.. ..\gen\*.c
# gcc -o wgen.exe wgen.o librocs.a -liphlpapi -lmpr -lwsock32 -ladvapi32
# gcc -o ogen.exe ogen.o librocs.a -liphlpapi -lmpr -lwsock32 -ladvapi32
# gcc -o xml2cstr.exe xml2cstr.o librocs.a -liphlpapi -lmpr -lwsock32 -ladvapi32
# cd ..



MOUNTPOINT=..
OUTDIR=..\winbin
GENDIR=..\wingen
TMPOUTDIR=$(GENDIR)\rocs\bin
DEBUG=-g
AR=ar
LIBS=-liphlpapi -lmpr -lwsock32 -ladvapi32 -lwinmm

CPP=gcc
LNK=gcc
INCL_PATH=$(MOUNTPOINT)

# --- LINUX ---
CC_FLAGS=-c $(DEBUG) -I$(INCL_PATH) -I$(GENDIR)


OBJS=$(patsubst impl/%.c,$(TMPOUTDIR)/%.o,$(wildcard impl/*.c))
W_OBJS=$(patsubst impl/win/%.c,$(TMPOUTDIR)/%.o,$(wildcard impl/win/*.c))
G_OBJS=$(patsubst gen/%.c,$(TMPOUTDIR)/%.o,$(wildcard gen/*.c))

all: $(OUTDIR)\librocs.a $(OUTDIR)\wgen.exe $(OUTDIR)\ogen.exe $(OUTDIR)\xml2cstr.exe
#	-del /Q $(TMPOUTDIR)\*.o

gen:
	cd $(GENDIR)\rocs & ..\..\rocs\bin\ogen.exe ..\..\rocs\rocs.xml

$(OUTDIR)\librocs.a: $(OBJS) $(W_OBJS) $(G_OBJS)
	$(AR) rcs $(OUTDIR)\librocs.a $(OBJS) $(W_OBJS)



$(OUTDIR)\wgen.exe: $(TMPOUTDIR)\wgen.o $(OUTDIR)\librocs.a
	$(LNK) $(LNK_FLAGS) -o $(OUTDIR)\wgen.exe $(TMPOUTDIR)\wgen.o $(OUTDIR)\librocs.a $(LIBS)

$(OUTDIR)\ogen.exe: $(TMPOUTDIR)\ogen.o $(OUTDIR)\librocs.a
	$(LNK) $(LNK_FLAGS) -o $(OUTDIR)\ogen.exe $(TMPOUTDIR)\ogen.o $(OUTDIR)\librocs.a $(LIBS)

$(OUTDIR)\xml2cstr.exe: $(TMPOUTDIR)\xml2cstr.o $(OUTDIR)\librocs.a
	$(LNK) $(LNK_FLAGS) -o $(OUTDIR)\xml2cstr.exe $(TMPOUTDIR)\xml2cstr.o $(OUTDIR)\librocs.a $(LIBS)

$(TMPOUTDIR)/%.o: impl/%.c
	$(CPP) $(CC_FLAGS) $< -o $@

$(TMPOUTDIR)/%.o: gen/%.c
	$(CPP) $(CC_FLAGS) $< -o $@

$(TMPOUTDIR)/%.o: impl/win/%.c
	$(CPP) $(CC_FLAGS) $< -o $@

clean:
	-mkdir $(OUTDIR)
	-mkdir $(GENDIR)\rocs
	-mkdir $(TMPOUTDIR)
	-del /Q $(TMPOUTDIR)\*.o
	-del /Q $(OUTDIR)\librocs.a
	cd $(GENDIR)\rocs & ..\..\rocs\bin\ogen.exe ..\..\rocs\rocs.xml

