PROGS=basename.exe cat.exe cmp.exe ls.exe rm.exe

SRC=Makefile alloc.c basename.c cat.c cmp.c ls.c ntcli.h ntgetopt.c \
	rm.c wildmatch.c

BIN=$(PROGS) ntcli.dll

DOC=ntcli.html

all: $(PROGS)

LINK32=link.exe

LINKLIB_FLAGS=kernel32.lib user32.lib advapi32.lib /nologo /subsystem:windows \
	/dll /incremental:no /machine:I386 /out:ntcli.dll /implib:ntcli.lib

LINKLIB_OBJS=alloc.obj ntgetopt.obj wildmatch.obj

ntcli.dll: $(LINKLIB_OBJS)
	$(LINK32) $(LINKLIB_FLAGS) $(LINKLIB_OBJS)

CFLAGS=/nologo /MT /W3 /GX /O1 /DWIN32 /DNDEBUG /D_WINDOWS

alloc.obj: alloc.c ntcli.h

ntgetopt.obj: ntgetopt.c ntcli.h

wildmatch.obj: wildmatch.c ntcli.h

basename.obj: basename.c ntcli.h

cat.obj: cat.c ntcli.h

cmp.obj: cmp.c ntcli.h

ls.obj: ls.c ntcli.h

rm.obj: rm.c ntcli.h

basename.exe: basename.obj ntcli.dll
	$(LINK32) kernel32.lib user32.lib advapi32.lib ntcli.lib /nologo \
	/subsystem:console /incremental:no /machine:I386 \
	/out:basename.exe basename.obj

cat.exe: cat.obj ntcli.dll
	$(LINK32) kernel32.lib user32.lib advapi32.lib ntcli.lib /nologo \
	/subsystem:console /incremental:no /machine:I386 \
	/out:cat.exe cat.obj ntcli.lib

cmp.exe: cmp.obj ntcli.dll
	$(LINK32) kernel32.lib user32.lib advapi32.lib ntcli.lib /nologo \
	/subsystem:console /incremental:no /machine:I386 \
	/out:cmp.exe cmp.obj ntcli.lib

ls.exe: ls.obj ntcli.dll
	$(LINK32) kernel32.lib user32.lib advapi32.lib ntcli.lib /nologo \
	/subsystem:console /incremental:no /machine:I386 \
	/out:ls.exe ls.obj ntcli.lib

rm.exe: rm.obj ntcli.dll
	$(LINK32) kernel32.lib user32.lib advapi32.lib ntcli.lib /nologo \
	/subsystem:console /incremental:no /machine:I386 \
	/out:rm.exe rm.obj ntcli.lib

clean:
	-erase rm.exe
	-rm -f *.zip *.obj ntcli.dll ntcli.lib ntcli.exp $(PROGS)

ntclisrc.zip: $(SRC)
	-erase ntclisrc.zip
	zip -9 ntclisrc $(DOC) $(SRC)

ntclibin.zip: $(BIN)
	-erase ntclibin.zip
	zip -9 ntclibin $(DOC) $(BIN)

zip: ntclisrc.zip ntclibin.zip
