#SDK = /Developer/SDKs/MacOSX10.4u.sdk
CC = gcc

INC = -Isrc -F$(SDK)/System/Library/Frameworks -I$(SDK)/usr/include
DEFINES = -DHANDLE_OBJC2_ABI

CFLAGS = -c -Wall -O2 $(INC) $(DEFINES)

LDFLAGS = -L$(SDK)/usr/lib -F$(SDK)/System/Library/Frameworks -framework Foundation -lobjc

OBJS = CDClassDump.o \
       CDMultiFileVisitor.o \
       CDSegmentCommand.o \
       CDTypeParser.o \
       CDClassDumpVisitor.o \
       CDOCCategory.o \
       CDStructureTable.o \
       CDUUIDCommand.o \
       CDClassFrameworkVisitor.o \
       CDOCClass.o \
       CDSymbol.o \
       CDVisitor.o \
       CDDylibCommand.o \
       CDOCIvar.o \
       CDSymbolReferences.o \
       NSArray-Extensions.o \
       CDDynamicSymbolTable.o \
       CDOCMethod.o \
       CDSymbolTable.o \
       NSError-CDExtensions.o \
       CDFatArch.o \
       CDOCModule.o \
       CDTextClassDumpVisitor.o \
       NSObject-CDExtensions.o \
       CDFatFile.o \
       CDOCProtocol.o \
       CDTopoSortNode.o \
       NSScanner-Extensions.o \
       CDFindMethodVisitor.o \
       CDOCSymtab.o \
       CDType.o \
       NSString-Extensions.o \
       CDLoadCommand.o \
       CDObjCSegmentProcessor-Private.o \
       CDTypeFormatter.o \
       main.o \
       CDMachOFile.o \
       CDObjCSegmentProcessor.o \
       CDTypeLexer.o \
       CDMethodType.o \
       CDSection.o \
       CDTypeName.o 

BUILD_DIR = build

.PHONY: init clean

all: init $(BUILD_DIR)/class-dump-x 

init:
	-@if [ ! -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi

$(BUILD_DIR)/class-dump-x: $(addprefix $(BUILD_DIR)/,$(OBJS))
	$(CC) $(LDFLAGS) -o $@ $^

$(BUILD_DIR)/%.o: src/%.m
	$(CC) $(CFLAGS) -o $@ $<

clean:
	-@rm -r $(BUILD_DIR)
