TARGETS	= $(OBJDIR)test$(EXEEXT) $(OBJDIR)test2$(EXEEXT) $(OBJDIR)test3$(EXEEXT) $(OBJDIR)test4$(EXEEXT) $(OBJDIR)test\ 5$(EXEEXT)
OBJDIR	=
PREFIX	= /Apps/$(VENDOR)
DESTDIR	=
BINDIR	= $(PREFIX)/Binaries
SBINDIR	= $(PREFIX)/Binaries
EXEEXT	=
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(OBJDIR)test$(EXEEXT) $(OBJDIR)test2$(EXEEXT) $(OBJDIR)test3$(EXEEXT) $(OBJDIR)test\ 5$(EXEEXT)

test_OBJS = $(OBJDIR)test.o $(OBJDIR)main.o
test_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
test_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)test$(EXEEXT): $(test_OBJS)
	$(CC) -o $(OBJDIR)test$(EXEEXT) $(test_OBJS) $(test_LDFLAGS)

test2_OBJS = $(OBJDIR)test2.o
test2_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
test2_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -lobjc

$(OBJDIR)test2$(EXEEXT): $(test2_OBJS)
	$(CC) -o $(OBJDIR)test2$(EXEEXT) $(test2_OBJS) $(test2_LDFLAGS)

test3_OBJS = $(OBJDIR)test3.o
test3_CXXFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CXXFLAGSF) $(CXXFLAGS)
test3_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -ldl -lsocket -lm

$(OBJDIR)test3$(EXEEXT): $(test3_OBJS)
	$(CC) -o $(OBJDIR)test3$(EXEEXT) $(test3_OBJS) $(test3_LDFLAGS)

test4_OBJS = $(OBJDIR)test4.o $(OBJDIR)test4.o
test4_ASFLAGS = $(ASFLAGSF) $(ASFLAGS)
test4_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) --export-dynamic
test4_CPPFLAGS = $(CPPFLAGSF) $(CPPFLAGS)

$(OBJDIR)test4$(EXEEXT): $(test4_OBJS)
	$(CC) -o $(OBJDIR)test4$(EXEEXT) $(test4_OBJS) $(test4_LDFLAGS)

test_5_OBJS = $(OBJDIR)test\ 5.o $(OBJDIR)main.o
test_5_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
test_5_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)test\ 5$(EXEEXT): $(test_5_OBJS)
	$(CC) -o $(OBJDIR)test\ 5$(EXEEXT) $(test_5_OBJS) $(test_5_LDFLAGS)

$(OBJDIR)test.o: test.c
	$(CC) $(test_CFLAGS) -o $(OBJDIR)test.o -c test.c

$(OBJDIR)main.o: main.c
	$(CC) $(test_CFLAGS) -o $(OBJDIR)main.o -c main.c

$(OBJDIR)test2.o: test2.m
	$(CC) $(test2_CFLAGS) -o $(OBJDIR)test2.o -c test2.m

$(OBJDIR)test3.o: test3.cpp
	$(CXX) $(test3_CXXFLAGS) -o $(OBJDIR)test3.o -c test3.cpp

$(OBJDIR)test4.o: test4.asm
	$(AS) $(test4_ASFLAGS) -m32 -o $(OBJDIR)test4.o test4.asm

$(OBJDIR)test4.o: test4.S
	$(AS) $(test4_CPPFLAGS) -nostdinc $(test4_ASFLAGS) -o $(OBJDIR)test4.o test4.S

$(OBJDIR)test\ 5.o: test\ 5.c
	$(CC) $(test_5_CFLAGS) -o $(OBJDIR)test\ 5.o -c test\ 5.c

$(OBJDIR)main.o: main.c
	$(CC) $(test_5_CFLAGS) -o $(OBJDIR)main.o -c main.c

clean:
	$(RM) -- $(test_OBJS) $(test2_OBJS) $(test3_OBJS) $(test4_OBJS) $(test_5_OBJS)

distclean: clean
	$(RM) -- $(TARGETS)

install: all
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)test$(EXEEXT) $(DESTDIR)$(BINDIR)/test$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)/test\ 5
	$(INSTALL) -m 0755 $(OBJDIR)test\ 5$(EXEEXT) $(DESTDIR)$(BINDIR)/test\ 5/test\ 5$(EXEEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(BINDIR)/test$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/test\ 5/test\ 5$(EXEEXT)

.PHONY: all clean distclean install uninstall
