all: $(TARGET)-$(ARCH)

LIBPATH = $(shell if [ $(ARCH) = `arch` ]; then echo -L/usr/X11R6/lib; fi)

clean:
	rm -rf *.o *.a $(TARGET)-*

$(TARGET)-$(ARCH): external.$(ARCH).a local.$(ARCH).a
	$(LD) \
		-m elf_i386 \
		--eh-frame-hdr \
		-dynamic-linker /lib/ld-linux.so.2 \
		-o $(TARGET)-$(ARCH) \
		$(ARCHPATH)/../../../crt1.o \
		$(ARCHPATH)/../../../crti.o \
		$(ARCHPATH)/crtbeginT.o \
		-L/usr/X11R6/lib \
		-L$(ARCHPATH) \
		-L$(ARCHPATH)/../../../../i686-pc-linux-gnu/lib \
		-L$(ARCHPATH)/../../.. \
		local.i686.a \
		external.i686.a \
		/usr/lib/libGL.so \
		/usr/lib/libGLU.so \
		/usr/X11R6/lib/libXext.so \
		/usr/X11R6/lib/libX11.so \
		-lpthread \
		-ldl \
		-Bstatic \
		-lpng \
		-lz \
		-lstdc++ \
		-Bdynamic \
		-lm \
		-lc \
		-lgcc \
		-lgcc_eh \
		$(ARCHPATH)/crtend.o \
		$(ARCHPATH)/../../../crtn.o

local.$(ARCH).a: $(LOCALOBJS)
	rm -f local.$(ARCH).a
	$(AR) r local.$(ARCH).a $(LOCALOBJS)
	$(RANLIB) local.$(ARCH).a

external.$(ARCH).a: $(COMMONOBJS) $(XPLMOBJS)
	rm -f external.$(ARCH).a
	$(AR) r external.$(ARCH).a $(COMMONOBJS) $(XPLMOBJS)
	$(RANLIB) external.$(ARCH).a

%.$(ARCH).o: $(TOPDIR)/Common/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/GenC/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/Files/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/Thread/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/Legacy/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/JoyNetSoundHard/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/Graph/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/Common/World/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: $(TOPDIR)/XPLM/%.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<

%.$(ARCH).o: %.cpp
	$(CPLUS) $(CFLAGS) -c -o $@ $<
