# $Id: Makefile.pmk,v 1.5 2004/12/27 15:07:57 mipsator Exp $

CC=		gcc
CPP=		/usr/bin/cpp
AS=		/usr/bin/as

# Warning options, uncomment as your need
#WARN=		-Wall
#WARN=		-Werror
#WARN=		-ansi -pedantic
#WARN=		-Wall -Werror -ansi -pedantic

#DEBUG=		-g

CFLAGS=		-pipe -Wall -g -DTMPDIR="\"/tmp\"" -O2 $(WARN) $(DEBUG)
LDFLAGS=	


CI_OBJS=	../common.o ../compat.o ../detect_cpu.o ../detect_cpu_asm.o \
		../dynarray.o ../hash.o ../parse.o ../pmk_obj.o cpuid_test.o

C_OBJS=		../common.o ../compat.o ../detect.o ../dynarray.o ../hash.o \
		../parse.o ../pmk_obj.o comp_test.o

DA_OBJS=	../compat.o ../dynarray.o da_test.o

GC_OBJS=	../common.o ../compat.o ../detect.o ../dynarray.o ../hash.o \
		../parse.o ../pmk_obj.o gen_comp_test.o

H_OBJS=		../compat.o ../hash.o hash_test.o

MK_OBJS=	../common.o ../compat.o ../dynarray.o mkvar_test.o

PRS_OBJS=	../autoconf.o ../common.o ../cfgtool.o ../detect.o \
		../dynarray.o ../func.o ../functool.o ../hash.o \
		../hash_tools.o ../parse.o ../pathtools.o ../pmk_obj.o \
		../pkgconfig.o parser_test.o

PTH_OBJS=	../compat.o ../pathtools.o path_test.o

PC_OBJS=	../common.o ../compat.o ../dynarray.o ../hash.o ../parse.o \
		../pkgconfig.o ../pmk_obj.o pkgconfig_test.o


all: comp cpuid dynary gencomp hash mkvar parser path pkgconfig

.c.o:
	$(CC) $(CFLAGS) -o $@ -c $<

.s.o:
	$(CPP) $< | sed '/^#/d' > tmp_asm.s
	$(AS) -o $@ tmp_asm.s
	rm tmp_asm.s

config:
	@if [ ! -f ../compat/compat.h ]; then \
		echo "Not configured, run \
		'cd ../ && make clean config' first."; \
		exit 1; \
	fi

comp: config $(C_OBJS)
	$(CC) $(LDFLAGS) -o comp_test $(C_OBJS)

cpuid: config $(CI_OBJS)
	$(CC) $(LDFLAGS) -o cpuid_test $(CI_OBJS)

dynary: config $(DA_OBJS)
	$(CC) $(LDFLAGS) -o da_test $(DA_OBJS)

gencomp: config $(GC_OBJS)
	$(CC) $(LDFLAGS) -o gen_comp_test $(GC_OBJS)

hash: config $(H_OBJS)
	$(CC) $(LDFLAGS) -o hash_test $(H_OBJS)

mkvar: config $(MK_OBJS)
	$(CC)  $(LDFLAGS) -o mkvar_test $(MK_OBJS)

parser: config $(PRS_OBJS)
	$(CC) $(LDFLAGS) -o parser_test $(PRS_OBJS)

path: config $(PTH_OBJS)
	$(CC) $(LDFLAGS) -o path_test $(PTH_OBJS)

pkgconfig: config $(PC_OBJS)
	$(CC) $(LDFLAGS) -o pkgconfig_test $(PC_OBJS)

clean:
	rm -f $(CI_OBJS) $(C_OBJS) $(DA_OBJS) $(GC_OBJS)
	rm -f $(H_OBJS) $(MK_OBJS) $(PRS_OBJS) $(PTH_OBJS) $(PC_OBJS)
	rm -f *_test *.core
