PREFIX=/usr/local

LIB_NAME = ptmxfake
LIB_VERS = 1
LIB_FULL = lib$(LIB_NAME).so.$(LIB_VERS)
LIB_OBJS = ptmx_fake.o
CHMOD_NAME = pty_chmod
CHMOD_OBJS = pty_chmod.o
CFLAGS = -g -O2 -Wall -W -Werror -Wshadow -Wwrite-strings
CFLAGS += -Wbad-function-cast -Wcast-qual -Wcast-align 
CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
#CFLAGS += -Wconversion
PTMX_CHMOD=$(PREFIX)/lib/$(CHMOD_NAME)
CPPFLAGS = -DPTMX_CHMOD=\"$(PTMX_CHMOD)\"

all: $(LIB_FULL) $(CHMOD_NAME)

clean: 
	rm -f ./*.o ./*.so*

dist-clean: clean
	rm -f $(CHMOD_NAME) ./*~ ./*% ./*.bak ./\#*\# core

install: all
	install -d $(PREFIX)/lib $(PREFIX)/include
	install -d $(PREFIX)/man/man3 $(PREFIX)/man/man4 $(PREFIX)/man/man8
	install -s -m 04755 $(CHMOD_NAME) $(PREFIX)/lib
	install -s $(LIB_FULL) $(PREFIX)/lib
	install ptmx_fake.h $(PREFIX)/include
	install grantpt.3 unlockpt.3 $(PREFIX)/man/man3
	install ptmx-fake.4 $(PREFIX)/man/man4
	install pty_chmod.8 $(PREFIX)/man/man8
	rm -f /dev/ptmx-fake.new && mknod -m 666 /dev/ptmx-fake.new c 1 3 \
	&& mv /dev/ptmx-fake.new /dev/ptmx-fake
	ln -nsf $(LIB_FULL) $(PREFIX)/lib/lib$(LIB_NAME).so
	ldconfig

$(LIB_FULL): $(LIB_OBJS)
	$(LINK.c) -shared -o $@ $(LIB_OBJS)

$(CHMOD_NAME): $(CHMOD_OBJS)
	$(LINK.c) -o $@ $(CHMOD_OBJS)

ptmx_fake.o: ptmx_fake.h ptmx_fake_internal.h
pty_chmod.o: ptmx_fake_internal.h
