All pastes #93952 Raw Edit

Unnamed

public text v1 · immutable
#93952 ·published 2006-07-20 21:53 UTC
rendered paste body
# GPL License - see http://opensource.org/licenses/gpl-license.php
# Copyright 2006 *nixCoders team - don't forget to credit us

NAME = ghf
VERSION = $(shell cat version.def)

CFLAGS = -Wall -march=i686 -fno-strict-aliasing
LDFLAGS = -lz -ldl -lcppunit -lelf -lbfd -lopcodes -L. -lghf

# Release/Debug flags
ifdef RELEASE
	CFLAGS += -O3
else
	CFLAGS += -ggdb
endif

LIB_SRC = asm.c elf.c utils.c vfunction.cpp
LIB_OBJS = $(patsubst %.c, %.o, $(filter %.c, $(LIB_SRC))) $(patsubst %.cpp, %.o, $(filter %.cpp, $(LIB_SRC)))
LIB_HEADERS = $(NAME).h
LIB = lib$(NAME).a

TEST_SRC = ghf-test.cpp
TEST_OBJS = $(TEST_SRC:.cpp=.o)
TEST_HEADERS = ghf-test.h
TEST_PROG = $(TEST_OBJS:.o=)

DIST_FILES += $(LIB_SRC) $(LIB_HEADERS) $(TEST_SRC) $(TEST_HEADERS) Makefile version.def
DIST_FOLDER = $(NAME)
DIST_FILE = $(NAME)-$(VERSION).tar.gz

all: $(LIB) $(if $(RELEASE), , $(TEST_PROG))

$(LIB): $(LIB_OBJS)
	$(AR) r $(LIB) $(LIB_OBJS)
	ranlib $(LIB)

clean:
	rm -rf $(LIB_OBJS) $(LIB) $(TEST_OBJS) $(TEST_PROG) $(DIST_FILE) $(DIST_FOLDER)

%.o: %.c $(LIB_HEADERS) Makefile
	$(CC) $(CFLAGS) -c -o $@ $<
%.o: %.cpp $(LIB_HEADERS) Makefile
	$(CXX) $(CFLAGS) -c -o $@ $<
$(TEST_OBJS): $(TEST_SRC) $(TEST_HEADERS) $(LIB) Makefile
	$(CXX) $(CFLAGS) -c -o $@ $<


$(TEST_PROG): $(TEST_OBJS)
	$(CXX) $(TEST_OBJS) $(LDFLAGS) -o $(TEST_PROG)
	@./$(TEST_PROG)

dist:
	make clean all RELEASE=1
	mkdir $(DIST_FOLDER)
	cp -R $(DIST_FILES) $(DIST_FOLDER)
	tar -czf $(DIST_FILE) $(DIST_FOLDER)
	rm -rf $(DIST_FOLDER)