235 lines
5.7 KiB
Makefile
235 lines
5.7 KiB
Makefile
#############################################################
|
|
# Simple makefile for elogd
|
|
#
|
|
# S. Ritt, May 12th 2000
|
|
# install/clean section by Th. Bullinger, Apr. 26th, 2002
|
|
#############################################################
|
|
|
|
#
|
|
# Directories for installation, modify if needed
|
|
#
|
|
|
|
ifndef PREFIX
|
|
PREFIX = /usr/local
|
|
endif
|
|
|
|
ifndef MANDIR
|
|
MANDIR = $(ROOT)$(PREFIX)/man
|
|
endif
|
|
|
|
ELOGDIR = $(ROOT)$(PREFIX)/elog
|
|
DESTDIR = $(ROOT)$(PREFIX)/bin
|
|
SDESTDIR = $(ROOT)$(PREFIX)/sbin
|
|
RCDIR = $(ROOT)/etc/rc.d/init.d
|
|
SRVDIR = $(ROOT)/usr/lib/systemd/system
|
|
|
|
# flag for SSL support
|
|
USE_SSL = 1
|
|
|
|
# flag for Kerberos support, please turn off if you don't need Kerberos
|
|
USE_KRB5 = 0
|
|
|
|
# flag for LDAP support, please turn off if you don't need LDAP
|
|
USE_LDAP = 0
|
|
|
|
# flag for PAM support, please turn of if you don't need PAM
|
|
USE_PAM = 0
|
|
|
|
#############################################################
|
|
|
|
# Default compilation flags unless stated otherwise.
|
|
CFLAGS += -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml
|
|
|
|
CC = c++
|
|
EXECS = elog elogd elconv
|
|
OBJS = mxml.o crypt.o
|
|
GIT_REVISION = src/git-revision.h
|
|
BINOWNER = bin
|
|
BINGROUP = bin
|
|
|
|
# Option to use our own implementation of strlcat, strlcpy
|
|
NEED_STRLCPY = 1
|
|
|
|
INSTALL = `which install`
|
|
RM = /bin/rm -f
|
|
|
|
OSTYPE = $(shell uname)
|
|
|
|
ifeq ($(OSTYPE),SunOS)
|
|
CC = gcc
|
|
LIBS += -lsocket -lnsl
|
|
CFLAGS =
|
|
INSTALL = /usr/ucb/install
|
|
RM = /usr/bin/rm -f
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),OpenBSD)
|
|
LIBS += -lcrypto
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),Darwin)
|
|
OSTYPE=darwin
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),darwin)
|
|
CC = c++
|
|
BINOWNER = root
|
|
BINGROUP = admin
|
|
NEED_STRLCPY =
|
|
CFLAGS += -I/opt/local/include
|
|
LIBS += -L/opt/local/lib
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),FreeBSD)
|
|
CC = gcc
|
|
BINOWNER = root
|
|
BINGROUP = wheel
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),Linux)
|
|
CC = c++
|
|
endif
|
|
|
|
ifdef USE_SSL
|
|
ifeq ($(USE_SSL),1)
|
|
override CFLAGS += -DHAVE_SSL
|
|
LIBS += -lssl
|
|
endif
|
|
endif
|
|
|
|
ifdef USE_KRB5
|
|
ifeq ($(USE_KRB5),1)
|
|
override CFLAGS += -DHAVE_KRB5
|
|
LIBS += -lkrb5
|
|
endif
|
|
endif
|
|
|
|
ifdef USE_LDAP
|
|
ifeq ($(USE_LDAP),1)
|
|
override CFLAGS += -DHAVE_LDAP
|
|
LIBS += -lldap -llber
|
|
endif
|
|
endif
|
|
|
|
ifdef USE_PAM
|
|
ifeq ($(USE_PAM),1)
|
|
override CFLAGS += -DHAVE_PAM
|
|
LIBS += -lpam -llber
|
|
endif
|
|
endif
|
|
|
|
ifdef NEED_STRLCPY
|
|
OBJS += strlcpy.o
|
|
endif
|
|
|
|
WHOAMI = $(shell whoami)
|
|
ifeq ($(WHOAMI),root)
|
|
BINFLAGS = -o ${BINOWNER} -g ${BINGROUP}
|
|
endif
|
|
|
|
all: $(EXECS)
|
|
|
|
# put current GIT revision into header file to be included by programs
|
|
$(GIT_REVISION): src/elogd.cxx src/elog.cxx
|
|
type git &> /dev/null; if [ $$? -eq 1 ]; then REV="unknown" ;else REV=`git log -n 1 --pretty=format:"%ad - %h"`; fi; echo \#define GIT_REVISION \"$$REV\" > $(GIT_REVISION)
|
|
|
|
crypt.o: src/crypt.cxx
|
|
$(CC) $(CFLAGS) -w -c -o crypt.o src/crypt.cxx
|
|
|
|
auth.o: src/auth.cxx
|
|
$(CC) $(CFLAGS) -w -c -o auth.o src/auth.cxx
|
|
|
|
mxml.o: mxml/mxml.cxx mxml/mxml.h
|
|
$(CC) $(CFLAGS) -c -o mxml.o mxml/mxml.cxx
|
|
|
|
strlcpy.o: src/strlcpy.cxx src/strlcpy.h
|
|
$(CC) $(CFLAGS) -c -o strlcpy.o src/strlcpy.cxx
|
|
|
|
elogd: src/elogd.cxx auth.o $(OBJS) $(GIT_REVISION)
|
|
$(CC) $(CFLAGS) -o elogd src/elogd.cxx auth.o $(OBJS) $(LIBS)
|
|
|
|
elog: src/elog.cxx $(OBJS) $(GIT_REVISION)
|
|
$(CC) $(CFLAGS) -o elog src/elog.cxx $(OBJS) $(LIBS)
|
|
|
|
debug: src/elogd.cxx auth.o $(OBJS)
|
|
$(CC) -g $(CFLAGS) -O0 -o elogd src/elogd.cxx auth.o $(OBJS) $(LIBS)
|
|
|
|
%: src/%.cxx
|
|
$(CC) $(CFLAGS) -o $@ $< $(LIBS)
|
|
|
|
ifeq ($(OSTYPE),CYGWIN_NT-5.1)
|
|
loc: locext.exe
|
|
for lang in resources/eloglang*; do \
|
|
./locext.exe src/elogd.cxx $$lang; echo locext src/elogd.cxx $$lang;\
|
|
done
|
|
else
|
|
locext: src/locext.cxx
|
|
loc: locext
|
|
@for lang in resources/eloglang*; do \
|
|
./locext src/elogd.cxx $$lang; echo locext src/elogd.cxx $$lang;\
|
|
done
|
|
endif
|
|
|
|
update: $(EXECS)
|
|
@$(INSTALL) -v -m 0755 ${BINFLAGS} elogd $(SDESTDIR)
|
|
|
|
install: $(EXECS)
|
|
@$(INSTALL) -m 0755 -d $(DESTDIR) $(SDESTDIR) $(MANDIR)/man1/ $(MANDIR)/man8/
|
|
@$(INSTALL) -m 0755 -d $(ELOGDIR)/scripts/ $(ELOGDIR)/resources/ $(ELOGDIR)/ssl/ $(ELOGDIR)/themes/default/icons
|
|
@$(INSTALL) -m 0755 -d $(ELOGDIR)/logbooks/demo
|
|
@$(INSTALL) -m 0755 -d $(ELOGDIR)/logbooks/demo/2001
|
|
@$(INSTALL) -v -m 0755 ${BINFLAGS} elog elconv $(DESTDIR)
|
|
@$(INSTALL) -v -m 0755 ${BINFLAGS} elogd $(SDESTDIR)
|
|
@$(INSTALL) -v -m 0644 man/elog.1 man/elconv.1 $(MANDIR)/man1/
|
|
@$(INSTALL) -v -m 0644 man/elogd.8 $(MANDIR)/man8/
|
|
@$(INSTALL) -v -m 0644 scripts/*.js $(ELOGDIR)/scripts/
|
|
|
|
@echo "Installing CKeditor to $(ELOGDIR)/scripts/ckeditor"
|
|
@cp -r scripts/* $(ELOGDIR)/scripts
|
|
|
|
@echo "Installing resources to $(ELOGDIR)/resources"
|
|
@$(INSTALL) -m 0644 resources/* $(ELOGDIR)/resources/
|
|
@if [ ! -f $(ELOGDIR)/ssl/server.crt ]; then \
|
|
$(INSTALL) -v -m 0644 ssl/server.crt $(ELOGDIR)/ssl/ ;\
|
|
fi
|
|
@if [ ! -f $(ELOGDIR)/ssl/server.key ]; then \
|
|
$(INSTALL) -v -m 0644 ssl/server.key $(ELOGDIR)/ssl/ ;\
|
|
fi
|
|
|
|
@echo "Installing themes to $(ELOGDIR)/themes"
|
|
@cp -r themes/* $(ELOGDIR)/themes
|
|
|
|
@echo "Installing example logbook to $(ELOGDIR)/logbooks/demo"
|
|
@if [ ! -f $(ELOGDIR)/logbooks/demo/2001 ]; then \
|
|
$(INSTALL) -v -m 0644 logbooks/demo/2001/* $(ELOGDIR)/logbooks/demo/2001 ; \
|
|
fi
|
|
|
|
@if [ ! -f $(ELOGDIR)/elogd.cfg ]; then \
|
|
$(INSTALL) -v -m 644 elogd.cfg.example $(ELOGDIR)/elogd.cfg ; \
|
|
fi
|
|
|
|
|
|
ifneq ($(OSTYPE),darwin)
|
|
@sed "s#\@PREFIX\@#$(PREFIX)#g" elogd.init_template > elogd.init
|
|
@if [ ! -f $(RCDIR)/elogd ]; then \
|
|
$(INSTALL) -v -m 0755 -D elogd.init $(RCDIR)/elogd ; \
|
|
fi
|
|
endif
|
|
|
|
ifneq ("$(wildcard $(SRVDIR))", "")
|
|
@$(INSTALL) -v -m 0644 -D elogd.service $(SRVDIR)
|
|
@echo The elogd service can now be started with
|
|
@echo " sudo systemctl start elogd"
|
|
endif
|
|
|
|
ifeq ($(OSTYPE),darwin)
|
|
@$(INSTALL) -v -m 0644 elogd.plist /Library/LaunchDaemons/ch.psi.elogd.plist
|
|
@echo The elogd service can now be started with
|
|
@echo " sudo launchctl load /Library/LaunchDaemons/ch.psi.elogd.plist"
|
|
endif
|
|
|
|
restart:
|
|
$(RCDIR)/elogd restart
|
|
clean:
|
|
-$(RM) *~ $(EXECS) crypt.o auth.o mxml.o strlcpy.o locext
|