CC = gcc
CFLAGS = -O2 -w -fmessage-length=0 -fvisibility=hidden -fPIC -DBUILDING_ECERE_COM -DECERE_STATIC -DECERE_BOOTSTRAP
OBJECTS = \
	bootstrap/File.o bootstrap/memory.o bootstrap/System.o bootstrap/TempFile.o bootstrap/_File.o bootstrap/_DualPipe.o bootstrap/_System.o bootstrap/_instance.o \
	bootstrap/BufferedFile.o bootstrap/DualPipe.o bootstrap/Array.o bootstrap/AVLTree.o \
	bootstrap/BuiltInContainer.o bootstrap/Container.o bootstrap/CustomAVLTree.o bootstrap/LinkList.o \
	bootstrap/List.o bootstrap/Map.o bootstrap/BinaryTree.o bootstrap/BTNode.o bootstrap/dataTypes.o \
	bootstrap/instance.o bootstrap/String.o bootstrap/OldList.o bootstrap/bsl.o bootstrap/ecere.main.o

all: bootstrap/libecereBootstrap.a

bootstrap/libecereBootstrap.a: $(OBJECTS)
	ar rcs bootstrap/libecereBootstrap.a $(OBJECTS)

# OBJECT RULES

bootstrap/File.o: bootstrap/File.c
	$(CC) $(CFLAGS) -c bootstrap/File.c -o bootstrap/File.o

bootstrap/memory.o: bootstrap/memory.c
	$(CC) $(CFLAGS) -c bootstrap/memory.c -o bootstrap/memory.o

bootstrap/System.o: bootstrap/System.c
	$(CC) $(CFLAGS) -c bootstrap/System.c -o bootstrap/System.o

bootstrap/TempFile.o: bootstrap/TempFile.c
	$(CC) $(CFLAGS) -c bootstrap/TempFile.c -o bootstrap/TempFile.o

bootstrap/_File.o: ../../ecere/src/sys/_File.c
	$(CC) $(CFLAGS) -c ../../ecere/src/sys/_File.c -o bootstrap/_File.o

bootstrap/_instance.o: ../../ecere/src/com/_instance.c
	$(CC) $(CFLAGS) -c ../../ecere/src/com/_instance.c -o bootstrap/_instance.o

bootstrap/_DualPipe.o: ../../ecere/src/sys/_DualPipe.c
	$(CC) $(CFLAGS) -c ../../ecere/src/sys/_DualPipe.c -o bootstrap/_DualPipe.o

bootstrap/_System.o: ../../ecere/src/sys/_System.c
	$(CC) $(CFLAGS) -c ../../ecere/src/sys/_System.c -o bootstrap/_System.o

bootstrap/BufferedFile.o: bootstrap/BufferedFile.c
	$(CC) $(CFLAGS) -c bootstrap/BufferedFile.c -o bootstrap/BufferedFile.o

bootstrap/DualPipe.o: bootstrap/DualPipe.c
	$(CC) $(CFLAGS) -c bootstrap/DualPipe.c -o bootstrap/DualPipe.o

bootstrap/Array.o: bootstrap/Array.c
	$(CC) $(CFLAGS) -c bootstrap/Array.c -o bootstrap/Array.o

bootstrap/AVLTree.o: bootstrap/AVLTree.c
	$(CC) $(CFLAGS) -c bootstrap/AVLTree.c -o bootstrap/AVLTree.o

bootstrap/BuiltInContainer.o: bootstrap/BuiltInContainer.c
	$(CC) $(CFLAGS) -c bootstrap/BuiltInContainer.c -o bootstrap/BuiltInContainer.o

bootstrap/Container.o: bootstrap/Container.c
	$(CC) $(CFLAGS) -c bootstrap/Container.c -o bootstrap/Container.o

bootstrap/CustomAVLTree.o: bootstrap/CustomAVLTree.c
	$(CC) $(CFLAGS) -c bootstrap/CustomAVLTree.c -o bootstrap/CustomAVLTree.o

bootstrap/LinkList.o: bootstrap/LinkList.c
	$(CC) $(CFLAGS) -c bootstrap/LinkList.c -o bootstrap/LinkList.o

bootstrap/List.o: bootstrap/List.c
	$(CC) $(CFLAGS) -c bootstrap/List.c -o bootstrap/List.o

bootstrap/Map.o: bootstrap/Map.c
	$(CC) $(CFLAGS) -c bootstrap/Map.c -o bootstrap/Map.o

bootstrap/BinaryTree.o: bootstrap/BinaryTree.c
	$(CC) $(CFLAGS) -c bootstrap/BinaryTree.c -o bootstrap/BinaryTree.o

bootstrap/BTNode.o: bootstrap/BTNode.c
	$(CC) $(CFLAGS) -c bootstrap/BTNode.c -o bootstrap/BTNode.o

bootstrap/dataTypes.o: bootstrap/dataTypes.c
	$(CC) $(CFLAGS) -c bootstrap/dataTypes.c -o bootstrap/dataTypes.o

bootstrap/instance.o: bootstrap/instance.c
	$(CC) $(CFLAGS) -c bootstrap/instance.c -o bootstrap/instance.o

bootstrap/String.o: bootstrap/String.c
	$(CC) $(CFLAGS) -c bootstrap/String.c -o bootstrap/String.o

bootstrap/OldList.o: bootstrap/OldList.c
	$(CC) $(CFLAGS) -c bootstrap/OldList.c -o bootstrap/OldList.o

bootstrap/bsl.o: ../bsl.c
	$(CC) $(CFLAGS) -c ../bsl.c -o bootstrap/bsl.o

bootstrap/ecere.main.o: bootstrap/ecere.main.c
	$(CC) $(CFLAGS) -c bootstrap/ecere.main.c -o bootstrap/ecere.main.o

clean:
	rm -f bootstrap/libecereBootstrap.a $(OBJECTS)
