
SOURCES = mb_cur_max.c mbstowcs.c wcstombs.c mblen.c mbtowc.c wctomb.c
OBJS = mb_cur_max.o mbstowcs.o wcstombs.o mblen.o mbtowc.o wctomb.o xwrap.o
# SOURCES = mbstowcs.c mblen.c wctomb.c mbtowc.c wcstombs.c
CFLAGS = -O2 -DWC_DEBUG
#CFLAGS = -O2 -DMB_DEBUG
DUMMY=dummy.c
#DUMMY=mb_cur_max.c

LIBC_SRC=/usr/src/redhat/BUILD/glibc-2.1.92

all: libnsfix netscape
# all: libnsfix fixed-broken netscape

.c.o:
	$(CC) $(CFLAGS) -D_GNU_SOURCE -I. -fPIC -c $*.c
#libnsfix:
#	$(CC) $(CFLAGS) -fPIC -shared -Wl,-soname,libnsfix.so.1,-rpath=/lib \
#	-Wl,--rpath-link=/lib/libc.so.6 --version-script=libnsfix.map -I/usr/include -I. \
#	-o libnsfix.so.1 ${SOURCES}

libnsfix: $(OBJS)
	$(CC) $(CFLAGS) -nostdlib -shared -Wl,-rpath=/lib \
	--version-script=libnsfix.map -I/usr/include -I. \
	-o libnsfix.so.1 ${OBJS}

nsfix: nsfix.c
	$(CC) $(CFLAGS) -nostdlib -shared -Wl,-rpath=/lib \
	--version-script=libnsfix.map -I/usr/include -I. \
	-o nsfix.so mb_cur_max.c nsfix.c -ldl -lc
#	-o nsfix.so nsfix.c mb_cur_max.c -ldl -lc

strip:
	strip --strip-symbol=gcc2_compiled. libnsfix.so.1

fixed-broken:
	$(CC) -O2 -fPIC -shared -Wl,-soname,libBrokenLocale.so.1 \
	-Wl,--version-script=broken.map,-rpath=/lib -I. \
	-o libBrokenLocale-linux.so mb_cur_max.c
dummy:
	$(CC) -O2 -fPIC -shared -Wl,-soname=libBrokenLocale.so.1 \
-Wl,--version-script=dummy.map,-rpath=/lib -o libBrokenLocale-linux.so $(DUMMY)

netscape:
	sed -e "/\/bin\/sh/d" -e "/libnsfix/d" </usr/bin/netscape>/tmp/net2
	echo "#!/bin/sh" >/tmp/net1
	echo "export LD_PRELOAD=/usr/lib/netscape/libnsfix.so.1" >>/tmp/net1
	cat /tmp/net1 /tmp/net2 >netscape
	chmod a+x netscape

install: all
	mkdir -p $(DESTDIR)/usr/lib/netscape/
	install -m 644 libnsfix.so.1 $(DESTDIR)/usr/lib/netscape/
	install -m 755 netscape	$(DESTDIR)/usr/bin/netscape
#	install -m 644 libBrokenLocale-linux.so $(DESTDIR)/lib
# update for new glibc.

update:
	cp $(LIBC_SRC)/wcsmbs/wcsmbsload.h .
	cp $(LIBC_SRC)/locale/localeinfo.h .
	cp $(LIBC_SRC)/intl/loadinfo.h intl/
	cp $(LIBC_SRC)/locale/categories.def .
	echo "Manually edit the include file names"

post: netscape
	(cd /lib;ln -fs libBrokenLocale-linux.so libBrokenLocale.so.1)

test:
	gcc -o tst1 wcsmbs-tst1.c
	gcc -o tst2 wcsmbs-tst2.c
	LANG=ko_KR.eucKR LD_PRELOAD=./libnsfix.so.1 ./tst1;LANG=ko_KR.eucKR LD_PRELOAD=./libnsfix.so.1 ./tst2
clean:
	rm -rf *.so *.o *.so.? netscape tst1 tst2 core
