TARGET = ^.!System.310.Modules.Iconv
VERSION = 004
CC = cc
CFLAGS = -ITCPIPLibs: -Wp -fnah -zM -fussy
CFLAGSDEBUG = -jUnixLib: -IUnixLib: -IC: -DDEBUG -ITCPIPLibs: -Wnp -fn -fussy
LD = link
LDFLAGS = C:o.stubs TCPIPLibs:o.unixlibzm C:unicode.o.ucodelibm
CMHG = cmhg

OBJECTS = eightbit.o header.o iconv.o alias.o menu.o

SOURCES = $(OBJECTS:.o=.c)
OBJS = $(OBJECTS:%.o=Release.%.o)
OBJSDEBUG = $(OBJECTS:%.o=Debug.%.o)

all: setup $(TARGET) stubs

debug: setup libiconv/a

$(TARGET): $(OBJS)
	$(LD) -RMF -o $@ $(LDFLAGS) $^
	@modsqz -f $@

stubs: Release.stubs.o
	$(AR) -c ^.libiconv/a Release.o.stubs
	@settype ^.libiconv/a fff

libiconv/a: $(OBJSDEBUG)
	$(AR) -c ^.libiconv/a Debug.o.eightbit Debug.o.iconv ^.ucodelib.o.*
	@settype ^.libiconv/a fff

Release.header.o:
	$(CMHG) cmhg.header -o $@ -d header.h

Release.stubs.o: stubs.c
	$(CC) -c -o $@ -ITCPIPLibs: -Wnp -fn -fussy $<

Release.%.o: %.c
	$(CC) -c -o $@ $(CFLAGS) $<

Debug.header.o:
	$(CMHG) cmhg.header -o $@ -d header.h

Debug.%.o: %.c
	$(CC) -c -o $@ $(CFLAGSDEBUG) $<

setup:
	-@cdir Release.o
	-@cdir Debug.o

clean:
	-@wipe Release.o ~C~VFR
	-@wipe Debug.o ~C~VFR

distclean: clean
	-@wipe ^.!System.310.Modules.Iconv ~C~VFR
	-@wipe ^.libiconv/a ~C~VFR

zip: all clean
	-@dir ^
	-@wipe iconv$(VERSION)/zip ~C~VFR
	-@zip -9r iconv$(VERSION)/zip !Boot !System libiconv/a ReadMe src
	-@dir src