##
##
## a very basic, non-Autoconf'd makefile
## to build Erni
## -qm 2003/03/19
##

# # # # # # # # # # # # # # # # # # # # 

### useful for debugging as a nonroot user 
## MAINTAINER_MODE  =  -DMAINTAINER_MODE

SRC_BASE = .

## for the manpage... when Autoconf is used
## these will be automagically set
RELEASE_DATE = 2003/10/02
RELEASE_NUM  = 0.41.0beta
MAN_SECTION  = 8
MAN_CENTER   = BrandXDev system tools


##
## we don't explicitly set owner/group here.  If the installation
## is done by hand, we let the natural order of things decide. If
## installation is done by RPM, the spec file will set owner/group
## for us -qm
##

INSTALL_COMMAND = ${SRC_BASE}/install-sh
INSTALL_COMMAND_DIRECTORY   = ${INSTALL_COMMAND} -m 755 -d
INSTALL_COMMAND_EXECUTABLE  = ${INSTALL_COMMAND} -m 555
INSTALL_COMMAND_DATAFILE    = ${INSTALL_COMMAND} -m 444

## ALT_ROOT_DIR is mostly for RPM builds; it is not defined here
## as it is meant to be passed on the commandline
PREFIX = /opt/erni
INSTALL_PATH = ${ALT_ROOT_DIR}${PREFIX}

OBJ_FILES = Logger.o utils.o erni_helpers.o erni.o

CFLAGS_BASIC = -g
CFLAGS_MAINTAINER = -Wall
CFLAGS = ${CFLAGS_BASIC} ${CFLAGS_MAINTAINER}

# # # # # # # # # # # # # # # # # # # # 

all: erni


erni: ${OBJ_FILES}
	${CC} -o erni ${OBJ_FILES}


Logger.o: Logger.c Logger.h
	${CC} -c ${CFLAGS} ${MAINTAINER_MODE} Logger.c

utils.o: utils.c utils.h
	${CC} -c ${CFLAGS} ${MAINTAINER_MODE} utils.c

erni_helpers.o: erni_helpers.c erni_helpers.h
	${CC} -c ${CFLAGS} ${MAINTAINER_MODE} erni_helpers.c

erni.o: erni.c erni.h
	${CC} -c ${CFLAGS} ${MAINTAINER_MODE} erni.c

stub_parseConfig: stub_parseConfig.c utils.o
	${CC} -o stub_parseConfig stub_parseConfig.c utils.o

clean:
	-rm -f ${OBJ_FILES}
	-rm -f erni
	-rm -rf doxygen

doxy: erni.doxyfile erni.c erni.h
	doxygen erni.doxyfile


docs: erni.pod
	pod2man --date="${RELEASE_DATE}" --section=${MAN_SECTION} --release=${RELEASE_NUM} --center="${MAN_CENTER}" --name=erni erni.pod > erni.${MAN_SECTION}
	pod2html --title="erni: BrandXDev system tools" --infile=erni.pod  --outfile erni.${MAN_SECTION}.html
	pod2text erni.pod erni.${MAN_SECTION}.txt

install: erni
	${INSTALL_COMMAND_DIRECTORY} ${INSTALL_PATH}
	${INSTALL_COMMAND_DIRECTORY} ${INSTALL_PATH}/man
	${INSTALL_COMMAND_DIRECTORY} ${INSTALL_PATH}/man/man${MAN_SECTION}
	${INSTALL_COMMAND_DIRECTORY} ${INSTALL_PATH}/sbin
	${INSTALL_COMMAND_DIRECTORY} ${INSTALL_PATH}/share/doc/erni

	${INSTALL_COMMAND_EXECUTABLE} erni ${INSTALL_PATH}/sbin

	${INSTALL_COMMAND_DATAFILE} erni.${MAN_SECTION} ${INSTALL_PATH}/man/man${MAN_SECTION}

	${INSTALL_COMMAND_DATAFILE} erni.SAMPLE_CONFIG ${INSTALL_PATH}/share/doc/erni
	${INSTALL_COMMAND_DATAFILE} README ${INSTALL_PATH}/share/doc/erni
	${INSTALL_COMMAND_DATAFILE} LICENSE ${INSTALL_PATH}/share/doc/erni
	${INSTALL_COMMAND_DATAFILE} erni.${MAN_SECTION}.html ${INSTALL_PATH}/share/doc/erni
	${INSTALL_COMMAND_DATAFILE} erni.${MAN_SECTION}.txt ${INSTALL_PATH}/share/doc/erni


solarispkg: erni
	## NOTE: this rule is for the product maintainer only -- 
	## it makes some assumptions about the build environment.

	pkgmk -d /tmp/staging -r ${INSTALL_PATH} -f ./sunpkg/prototype
	pkgtrans -s /tmp/staging /tmp/BXDerni.pkg all
	@echo "pkg is in /tmp/BXDerni.pkg"


# # # # # # # # # # # # # # # # # # # # 

