# Makefile template built by pmkscan (2006-10-11 20:09)
# @configure_input@


# build tools
AS=		@AS@
ASFLAGS=
CPP=		@CPP@
CC=		@CC@
CFLAGS=		@CFLAGS@ \
		$(WARN) $(DBGFLAGS) \
		-DDATADIR=\"$(DATADIR)\" \
		-DPRIVSEP_USER=\"$(PRIVSEP_USER)\" \
		-DSYSCONFDIR=\"$(SYSCONFDIR)\" \
		-DCONFDIR=\"$(CONFDIR)\"
CLDFLAGS=	@CLDFLAGS@
INSTALL=	@INSTALL@
RM=		rm
RMFLAGS=	-rf


# tool aliases
INSTALL_BIN=	$(INSTALL) -m 755
INSTALL_SBIN=	$(INSTALL) -m 755
INSTALL_STLIB=	$(INSTALL) -m 644
INSTALL_SHLIB=	$(INSTALL) -m 755
INSTALL_DATA=	$(INSTALL) -m 644
INSTALL_DIR=	$(INSTALL) -d -m 755
INSTALL_MAN=	$(INSTALL) -m 644


# specific directories
PREFIX=		@PREFIX@
BINDIR=		@BINDIR@
SBINDIR=	@SBINDIR@
DATADIR=	@DATADIR@
MANDIR=		@MANDIR@
MAN1DIR=	@MAN1DIR@
MAN5DIR=	@MAN5DIR@
MAN8DIR=	@MAN8DIR@
SYSCONFDIR=	@SYSCONFDIR@

# packaging
PACKAGE=	@PACKAGE@
VERSION=	@VERSION@


# extra tags
CONFDIR=	@CONFDIR@
PRIVSEP_USER=	@PRIVSEP_USER@

#
# list of generated files
#
GEN_FILES=	Makefile Makefile compat/config.h

#
# source dependency lists
#
AUTOCONF_SRCS=	autoconf.c autoconf.h cfgtool.h common.h compat/config.h \
		compat/pmk_ctype.h compat/pmk_libgen.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h compat/pmk_sys_types.h \
		compat/pmk_unistd.h detect.h dynarray.h errmsg.h \
		functool.h hash.h hash_tools.h parse.h pathtools.h pmk.h \
		pmk_obj.h premake.h prseng.h tags.h

CFGTOOL_SRCS=	cfgtool.c cfgtool.h common.h compat/config.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h dynarray.h errmsg.h hash.h parse.h \
		pmk_obj.h premake.h prseng.h

CODEBUILD_SRCS=	codebuild.c codebuild.h common.h compat/config.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h dynarray.h errmsg.h hash.h lang.h \
		pmk_obj.h premake.h

COMMON_SRCS=	common.c common.h compat/config.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h \
		compat/pmk_unistd.h dynarray.h errmsg.h hash.h pmk_obj.h \
		premake.h

COMPAT_SRCS=	compat.c compat.h compat/config.h compat/pmk_ctype.h \
		compat/pmk_libgen.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h \
		compat/pmk_sys_types.h compat/pmk_unistd.h

DETECT_SRCS=	common.h compat/config.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h \
		compat/pmk_unistd.h detect.c detect.h dynarray.h \
		errmsg.h hash.h lang.h parse.h pmk_obj.h premake.h \
		prseng.h

DETECT_CPU_SRCS=	common.h compat/config.h compat/pmk_stdbool.h \
			compat/pmk_stdio.h compat/pmk_string.h \
			compat/pmk_sys_types.h cpu_arch_def.h \
			detect_cpu.c detect_cpu.h detect_cpu_asm.h \
			dynarray.h errmsg.h hash.h parse.h pmk_obj.h \
			premake.h prseng.h

DETECT_CPU_ASM_SRCS=	cpu_arch_def.h detect_cpu_asm.s

DYNARRAY_SRCS=	compat/config.h compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h dynarray.c dynarray.h

FUNC_SRCS=	autoconf.h cfgtool.h codebuild.h common.h compat/config.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h compat/pmk_unistd.h detect.h \
		dynarray.h errmsg.h func.c func.h functool.h hash.h \
		hash_tools.h lang.h parse.h pkgconfig.h pmk.h pmk_obj.h \
		premake.h prseng.h tags.h

FUNCTOOL_SRCS=	cfgtool.h common.h compat/config.h compat/pmk_ctype.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h compat/pmk_unistd.h detect.h \
		dynarray.h errmsg.h functool.c functool.h hash.h \
		hash_tools.h parse.h pmk.h pmk_obj.h premake.h prseng.h \
		tags.h

HASH_SRCS=	common.h compat/config.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h dynarray.h \
		errmsg.h hash.c hash.h pmk_obj.h premake.h

HASH_TOOLS_SRCS=	compat/config.h compat/pmk_stdbool.h compat/pmk_stdio.h \
			compat/pmk_string.h dynarray.h errmsg.h hash.h \
			hash_tools.c hash_tools.h pmk_obj.h premake.h

LANG_SRCS=	compat/config.h compat/pmk_stdbool.h dynarray.h errmsg.h \
		hash.h lang.c lang.h pmk_obj.h premake.h

PARSE_SRCS=	common.h compat/config.h compat/pmk_ctype.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h dynarray.h errmsg.h hash.h parse.c \
		parse.h pmk_obj.h premake.h prseng.h

PARSE_LANG_SRCS=	common.h compat/config.h compat/pmk_stdbool.h \
			compat/pmk_stdio.h compat/pmk_string.h \
			dynarray.h errmsg.h hash.h parse_lang.c \
			parse_lang.h pmk_obj.h premake.h prseng.h

PATHTOOLS_SRCS=	compat/config.h compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h pathtools.c pathtools.h

PKGCONFIG_SRCS=	common.h compat/config.h compat/pmk_ctype.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h compat/pmk_sys_types.h dynarray.h \
		errmsg.h hash.h hash_tools.h parse.h pkgconfig.c \
		pkgconfig.h pmk_obj.h premake.h prseng.h

PMK_SRCS=	autoconf.h cfgtool.h common.h compat/config.h \
		compat/pmk_ctype.h compat/pmk_libgen.h \
		compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h compat/pmk_sys_types.h \
		compat/pmk_unistd.h detect.h dynarray.h errmsg.h func.h \
		hash.h hash_tools.h lang.h parse.h pathtools.h pmk.c \
		pmk.h pmk_obj.h premake.h prseng.h tags.h

PMK_OBJ_SRCS=	compat/config.h compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h dynarray.h hash.h pmk_obj.c \
		pmk_obj.h

PMKINSTALL_SRCS=	common.h compat/config.h compat/pmk_ctype.h \
			compat/pmk_libgen.h compat/pmk_stdbool.h \
			compat/pmk_stdio.h compat/pmk_string.h \
			compat/pmk_sys_types.h compat/pmk_unistd.h \
			dynarray.h errmsg.h hash.h pathtools.h pmk_obj.h \
			pmkinstall.c pmkinstall.h premake.h

PMKPC_SRCS=	cfgtool.h common.h compat/config.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h dynarray.h \
		errmsg.h hash.h hash_tools.h parse.h pkgconfig.h \
		pmk_obj.h pmkpc.c pmkpc.h premake.h prseng.h

PMKSCAN_SRCS=	common.h compat/config.h compat/pmk_ctype.h \
		compat/pmk_libgen.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h \
		compat/pmk_sys_types.h compat/pmk_unistd.h dynarray.h \
		errmsg.h hash.h hash_tools.h lang.h parse.h parse_lang.h \
		pathtools.h pmk_obj.h pmkscan.c pmkscan.h premake.h \
		prseng.h tags.h

PMKSETUP_SRCS=	common.h compat/config.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h \
		compat/pmk_sys_types.h compat/pmk_unistd.h \
		cpu_arch_def.h detect_cpu.h dynarray.h errmsg.h hash.h \
		parse.h pmk_obj.h pmksetup.c pmksetup.h premake.h \
		prseng.h

PRSENG_SRCS=	compat/config.h compat/pmk_stdbool.h compat/pmk_stdio.h \
		compat/pmk_string.h prseng.c prseng.h

TAGS_SRCS=	compat/config.h compat/pmk_ctype.h compat/pmk_stdbool.h \
		compat/pmk_stdio.h compat/pmk_string.h tags.c tags.h

#
# binary name macros
#
PMK=	pmk

PMKINSTALL=	pmkinstall

PMKPC=	pmkpc

PMKSCAN=	pmkscan

PMKSETUP=	pmksetup

#
# binary target dependency lists
#
PMK_OBJS=	autoconf.o cfgtool.o codebuild.o common.o compat.o detect.o \
		dynarray.o func.o functool.o hash.o hash_tools.o lang.o parse.o \
		pathtools.o pkgconfig.o pmk.o pmk_obj.o prseng.o tags.o

PMKINSTALL_OBJS=	common.o compat.o dynarray.o hash.o pathtools.o \
			pmk_obj.o pmkinstall.o

PMKPC_OBJS=	cfgtool.o common.o compat.o dynarray.o hash.o hash_tools.o \
		parse.o pkgconfig.o pmk_obj.o pmkpc.o prseng.o

PMKSCAN_OBJS=	common.o compat.o dynarray.o hash.o hash_tools.o parse.o \
		parse_lang.o pathtools.o pmk_obj.o pmkscan.o prseng.o \
		tags.o

PMKSETUP_OBJS=	common.o compat.o detect_cpu.o detect_cpu_asm.o \
		dynarray.o hash.o parse.o pmk_obj.o pmksetup.o prseng.o

#
# target lists
#

# building
BUILD_TARGETS=	$(ALL_BIN_TARGETS)

ALL_BIN_TARGETS=	$(PMKINSTALL) $(PMK) $(PMKPC) $(PMKSCAN) $(PMKSETUP)


# cleaning
CLEAN_TARGETS=	$(BIN_CLEAN_TARGETS)

BIN_CLEAN_TARGETS=	$(PMK)_clean $(PMKINSTALL)_clean $(PMKPC)_clean \
			$(PMKSCAN)_clean $(PMKSETUP)_clean


# installing
INSTALL_TARGETS=	install_bin install_man install_data

BIN_INSTALL_TARGETS=	$(PMKINSTALL)_install $(PMK)_install $(PMKPC)_install \
			$(PMKSCAN)_install $(PMKSETUP)_install


# deinstalling
DEINSTALL_TARGETS=	$(BIN_DEINSTALL_TARGETS) deinstall_man deinstall_data

BIN_DEINSTALL_TARGETS=	$(PMK)_deinstall $(PMKINSTALL)_deinstall \
			$(PMKPC)_deinstall $(PMKSCAN)_deinstall \
			$(PMKSETUP)_deinstall

MAN1_FILES=	man/pmk.1 man/pmkinstall.1 man/pmkpc.1 man/pmkscan.1

MAN5_FILES=	man/pmk.conf.5 man/pmkfile.5 man/pmksyntax.5 man/scanfile.5

MAN8_FILES=	man/pmksetup.8

DATA_FILES=	data/pmkcfgtool.dat data/pmkcomp.dat data/pmkcpu.dat \
		data/pmkscan.dat


# by default we consider all binaries as non privileged
BIN_FILES=	$(ALL_BIN_TARGETS)

# move privileged binaries here if needed
SBIN_FILES=

.SUFFIXES: .o .s .c .C .cc .cxx .cpp

# assembly suffix
# we use CPP to be more portable
.s.o:
	$(CPP) $< | sed '/^#/d' > tmp_asm.s
	$(AS) $(ASFLAGS) -o $@ tmp_asm.s
	$(RM) $(RMFLAGS) tmp_asm.s

# C suffixes
.c.o:
	$(CC) $(CFLAGS) $(SLCFLAGS) -o $@ -c $<


#
# generic targets
#
all: $(BUILD_TARGETS)

clean: $(CLEAN_TARGETS)

install: $(INSTALL_TARGETS)

deinstall: $(DEINSTALL_TARGETS)

# install manual pages
install_man:
	$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
	# man1
	$(INSTALL_DIR) $(DESTDIR)$(MAN1DIR)
	$(INSTALL_DATA) man/pmk.1 $(DESTDIR)$(MAN1DIR)/pmk.1
	$(INSTALL_DATA) man/pmkinstall.1 $(DESTDIR)$(MAN1DIR)/pmkinstall.1
	$(INSTALL_DATA) man/pmkpc.1 $(DESTDIR)$(MAN1DIR)/pmkpc.1
	$(INSTALL_DATA) man/pmkscan.1 $(DESTDIR)$(MAN1DIR)/pmkscan.1
	# man5
	$(INSTALL_DIR) $(DESTDIR)$(MAN5DIR)
	$(INSTALL_DATA) man/pmk.conf.5 $(DESTDIR)$(MAN5DIR)/pmk.conf.5
	$(INSTALL_DATA) man/pmkfile.5 $(DESTDIR)$(MAN5DIR)/pmkfile.5
	$(INSTALL_DATA) man/pmksyntax.5 $(DESTDIR)$(MAN5DIR)/pmksyntax.5
	$(INSTALL_DATA) man/scanfile.5 $(DESTDIR)$(MAN5DIR)/scanfile.5
	# man8
	$(INSTALL_DIR) $(DESTDIR)$(MAN8DIR)
	$(INSTALL_DATA) man/pmksetup.8 $(DESTDIR)$(MAN8DIR)/pmksetup.8

# deinstall manual pages
deinstall_man:
	# man1
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN1DIR)/pmk.1
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN1DIR)/pmkinstall.1
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN1DIR)/pmkpc.1
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN1DIR)/pmkscan.1
	# man5
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN5DIR)/pmk.conf.5
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN5DIR)/pmkfile.5
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN5DIR)/pmksyntax.5
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN5DIR)/scanfile.5
	# man8
	$(RM) $(RMFLAGS) $(DESTDIR)$(MAN8DIR)/pmksetup.8

# install data files
install_data: $(DATA_FILES)
	$(INSTALL_DIR) $(DESTDIR)$(DATADIR)
	$(INSTALL_DATA) data/pmkcfgtool.dat $(DESTDIR)$(DATADIR)/pmkcfgtool.dat
	$(INSTALL_DATA) data/pmkcomp.dat $(DESTDIR)$(DATADIR)/pmkcomp.dat
	$(INSTALL_DATA) data/pmkcpu.dat $(DESTDIR)$(DATADIR)/pmkcpu.dat
	$(INSTALL_DATA) data/pmkscan.dat $(DESTDIR)$(DATADIR)/pmkscan.dat

# deinstall data files
deinstall_data:
	$(RM) $(RMFLAGS) $(DESTDIR)$(DATADIR)/pmkcfgtool.dat
	$(RM) $(RMFLAGS) $(DESTDIR)$(DATADIR)/pmkcomp.dat
	$(RM) $(RMFLAGS) $(DESTDIR)$(DATADIR)/pmkcpu.dat
	$(RM) $(RMFLAGS) $(DESTDIR)$(DATADIR)/pmkscan.dat

distclean: clean
	$(RM) $(RMFLAGS) $(GEN_FILES)

#
# object rules
#
autoconf.o: $(AUTOCONF_SRCS)


cfgtool.o: $(CFGTOOL_SRCS)


codebuild.o: $(CODEBUILD_SRCS)


common.o: $(COMMON_SRCS)


compat.o: $(COMPAT_SRCS)


detect.o: $(DETECT_SRCS)


detect_cpu.o: $(DETECT_CPU_SRCS)


detect_cpu_asm.o: $(DETECT_CPU_ASM_SRCS)


dynarray.o: $(DYNARRAY_SRCS)


func.o: $(FUNC_SRCS)


functool.o: $(FUNCTOOL_SRCS)


hash.o: $(HASH_SRCS)


hash_tools.o: $(HASH_TOOLS_SRCS)


lang.o: $(LANG_SRCS)


parse.o: $(PARSE_SRCS)


parse_lang.o: $(PARSE_LANG_SRCS)


pathtools.o: $(PATHTOOLS_SRCS)


pkgconfig.o: $(PKGCONFIG_SRCS)


pmk.o: $(PMK_SRCS)


pmk_obj.o: $(PMK_OBJ_SRCS)


pmkinstall.o: $(PMKINSTALL_SRCS)


pmkpc.o: $(PMKPC_SRCS)


pmkscan.o: $(PMKSCAN_SRCS)


pmksetup.o: $(PMKSETUP_SRCS)


prseng.o: $(PRSENG_SRCS)


tags.o: $(TAGS_SRCS)


#
# binary target rules
#

# main binary install target
install_bin: install_bindir $(BIN_INSTALL_TARGETS)

# install binary directory
install_bindir:
	$(INSTALL_DIR) $(DESTDIR)$(BINDIR)

# pmk binary targets
$(PMK): $(PMK_OBJS)
	$(CC) $(CLDFLAGS) -o $@ $(PMK_OBJS)

$(PMK)_clean:
	$(RM) $(RMFLAGS) $(PMK_OBJS)
	$(RM) $(RMFLAGS) $(PMK)

$(PMK)_install: $(PMK)
	$(INSTALL_BIN) $(PMK) $(DESTDIR)$(BINDIR)/$(PMK)

$(PMK)_deinstall:
	$(RM) $(RMFLAGS) $(DESTDIR)$(BINDIR)/$(PMK)

# pmkinstall binary targets
$(PMKINSTALL): $(PMKINSTALL_OBJS)
	$(CC) $(CLDFLAGS) -o $@ $(PMKINSTALL_OBJS)

$(PMKINSTALL)_clean:
	$(RM) $(RMFLAGS) $(PMKINSTALL_OBJS)
	$(RM) $(RMFLAGS) $(PMKINSTALL)

$(PMKINSTALL)_install: $(PMKINSTALL)
	$(INSTALL_BIN) $(PMKINSTALL) $(DESTDIR)$(BINDIR)/$(PMKINSTALL)

$(PMKINSTALL)_deinstall:
	$(RM) $(RMFLAGS) $(DESTDIR)$(BINDIR)/$(PMKINSTALL)

# pmkpc binary targets
$(PMKPC): $(PMKPC_OBJS)
	$(CC) $(CLDFLAGS) -o $@ $(PMKPC_OBJS)

$(PMKPC)_clean:
	$(RM) $(RMFLAGS) $(PMKPC_OBJS)
	$(RM) $(RMFLAGS) $(PMKPC)

$(PMKPC)_install: $(PMKPC)
	$(INSTALL_BIN) $(PMKPC) $(DESTDIR)$(BINDIR)/$(PMKPC)

$(PMKPC)_deinstall:
	$(RM) $(RMFLAGS) $(DESTDIR)$(BINDIR)/$(PMKPC)

# pmkscan binary targets
$(PMKSCAN): $(PMKSCAN_OBJS)
	$(CC) $(CLDFLAGS) -o $@ $(PMKSCAN_OBJS)

$(PMKSCAN)_clean:
	$(RM) $(RMFLAGS) $(PMKSCAN_OBJS)
	$(RM) $(RMFLAGS) $(PMKSCAN)

$(PMKSCAN)_install: $(PMKSCAN)
	$(INSTALL_BIN) $(PMKSCAN) $(DESTDIR)$(BINDIR)/$(PMKSCAN)

$(PMKSCAN)_deinstall:
	$(RM) $(RMFLAGS) $(DESTDIR)$(BINDIR)/$(PMKSCAN)

# pmksetup binary targets
$(PMKSETUP): $(PMKSETUP_OBJS)
	$(CC) $(CLDFLAGS) -o $@ $(PMKSETUP_OBJS)

$(PMKSETUP)_clean:
	$(RM) $(RMFLAGS) $(PMKSETUP_OBJS)
	$(RM) $(RMFLAGS) $(PMKSETUP)

$(PMKSETUP)_install: $(PMKSETUP)
	$(INSTALL_BIN) $(PMKSETUP) $(DESTDIR)$(BINDIR)/$(PMKSETUP)

$(PMKSETUP)_deinstall:
	$(RM) $(RMFLAGS) $(DESTDIR)$(BINDIR)/$(PMKSETUP)



syntax highlighted by Code2HTML, v. 0.9.1