TOPDIR=../
include $(TOPDIR)Rules.make

ifeq ($(CDROM_SUPPORT),1)
CDROM_SO=cdrom$(LIB_SUFFIX)
endif

all: arctar$(LIB_SUFFIX) arczip$(LIB_SUFFIX) $(CDROM_SO) fstypes.o pfilesel$(LIB_SUFFIX)

arctar_so=arctar.o
arctar$(LIB_SUFFIX): $(arctar_so)
	$(CC) $(SHARED_FLAGS) -o $@ $^

arczip_so=arczip.o
arczip$(LIB_SUFFIX): $(arczip_so)
	$(CC) $(SHARED_FLAGS) -o $@ $^ -lz

cdrom_so=cdrom.o
cdrom$(LIB_SUFFIX): $(cdrom_so)
	$(CC) $(SHARED_FLAGS) -o $@ $^

pfilesel_so=adb.o cphlpfs.o dirdb.o pfilesel.o pfsmain.o modlist.o fsptype.o mdb.o pfspls.o pfsm3u.o gendir.o playlist.o
pfilesel$(LIB_SUFFIX): $(pfilesel_so)
	$(CC) $(SHARED_FLAGS) -lm -o $@ $^

clean:
	rm -f *.o *$(LIB_SUFFIX) modlist_test

install:
	$(CP) arctar$(LIB_SUFFIX) arczip$(LIB_SUFFIX) pfilesel$(LIB_SUFFIX) "$(DESTDIR)$(LIBDIR)"
ifeq ($(CDROM_SUPPORT),1)
	$(CP) $(CDROM_SO) "$(DESTDIR)$(LIBDIR)"
endif

uninstall:
	rm -f "$(DESTDIR)$(LIBDIR)/arctar$(LIB_SUFFIX)" "$(DESTDIR)$(LIBDIR)/arczip$(LIB_SUFFIX)" "$(DESTDIR)$(LIBDIR)/pfilesel$(LIB_SUFFIX)"
ifeq ($(CDROM_SUPPORT),1)
	rm -f "$(DESTDIR)$(LIBDIR)/$(CDROM_SO)"
endif

adb.o: adb.c adb.h \
	../config.h \
	../types.h \
	dirdb.h \
	../boot/plinkman.h \
	../boot/psetting.h \
	../stuff/poutput.h \
	modlist.h \
	mdb.h \
	pfilesel.h \
	../stuff/compat.h
	$(CC) adb.c -o $@ -c

dirdb.o: dirdb.c dirdb.h \
	../config.h \
	../types.h \
	../boot/psetting.h
	$(CC) dirdb.c -o $@ -c

cdrom.o: cdrom.c \
	../config.h \
	../types.h \
	dirdb.h \
	../boot/plinkman.h \
	modlist.h \
	pfilesel.h \
	../stuff/err.h \
	mdb.h
	$(CC) cdrom.c -o $@ -c

mdb.o: mdb.c mdb.h \
	../config.h \
	../types.h \
	../boot/plinkman.h \
	../boot/psetting.h \
	modlist.h \
	pfilesel.h \
	../stuff/imsrtns.h
	$(CC) mdb.c -o $@ -c

cphlpfs.o: cphlpfs.c cphlpfs.h \
	../config.h \
	../types.h \
	../stuff/framelock.h \
	../stuff/poutput.h \
	../help/cphelper.h
	$(CC) cphlpfs.c -o $@ -c

fsptype.o: fsptype.c \
	../config.h \
	../types.h \
	dirdb.h \
	mdb.h
	$(CC) fsptype.c -o $@ -c

modlist.o: modlist.c modlist.h \
	../config.h \
	../types.h \
	../stuff/compat.h \
	dirdb.h
	$(CC) modlist.c -o $@ -c

modlist_test.o: modlist_test.c \
	../config.h
	modlist.h
	$(CC) modlist_test.c -o $@ -c

modlist_test: modlist.o modlist_test.o
	$(CC) -o $@ $^ -lefence

pfilesel.o: pfilesel.c pfilesel.h \
	../config.h \
	../types.h \
	adb.h \
	../boot/psetting.h \
	../cpiface/cpiface.h \
	cphlpfs.h \
	dirdb.h \
	gendir.h \
	mdb.h \
	../stuff/compat.h \
	../stuff/framelock.h \
	../stuff/poutput.h \
	modlist.h
	$(CC) pfilesel.c -o $@ -c

fstypes.o: fstypes.c \
	../config.h \
	../boot/plinkman.h \
	mdb.h
	$(CC) fstypes.c -o $@ -c

pfsmain.o: pfsmain.c \
	../config.h \
	../types.h \
	mdb.h \
	pfilesel.h \
	../boot/plinkman.h \
	../boot/pmain.h \
	../stuff/poutput.h \
	../stuff/err.h \
	../boot/psetting.h
	$(CC) pfsmain.c -o $@ -c

arctar.o: arctar.c \
	../config.h \
	../types.h \
	adb.h \
	mdb.h \
	mif.h \
	modlist.h \
	../boot/plinkman.h \
	../stuff/compat.h \
	pfilesel.h
	$(CC) arctar.c -o $@ -c

arczip.o: arczip.c \
	../config.h \
	../types.h \
	adb.h \
	mdb.h \
	mif.h \
	modlist.h \
	../boot/plinkman.h \
	../boot/psetting.h \
	../stuff/compat.h \
	pfilesel.h
	$(CC) arczip.c -o $@ -c

pfspls.o: pfspls.c \
	../config.h \
	../types.h \
	adb.h \
	dirdb.h \
	gendir.h \
	mdb.h \
	modlist.h \
	playlist.h \
	pfilesel.h \
	../stuff/compat.h
	$(CC) pfspls.c -o $@ -c

pfsm3u.o: pfsm3u.c \
	../config.h \
	../types.h \
	adb.h \
	dirdb.h \
	gendir.h \
	mdb.h \
	modlist.h \
	playlist.h \
	pfilesel.h \
	../stuff/compat.h
	$(CC) pfsm3u.c -o $@ -c

gendir.o: gendir.c \
	../config.h \
	../types.h \
	gendir.h
	$(CC) gendir.c -o $@ -c

playlist.o: playlist.c \
	../config.h \
	../types.h \
	adb.h \
	dirdb.h \
	gendir.h \
	mdb.h \
	modlist.h \
	pfilesel.h \
	playlist.h \
	../stuff/compat.h
	$(CC) playlist.c -o $@ -c
