PIC= -fPIC #CFLAGS= -g -DUSE_SEMAPHORE $(PIC) CFLAGS+= -g $(PIC) .if ${MACHINE_ARCH} == "i386" && ${OSVERSION} < 700003 || (${MACHINE_ARCH} == "amd64" && ${OSVERSION} < 700003) || ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" CFLAGS+= -DPAGE_PROTECTION_VIOLATED_SIGNAL=SIGBUS .endif #CFLAGS+= -pthread # for FreeBSD comment out the below as this is not how we do pthreads. #LIB_PTHREADS= -lpthread -lc prefix=$(PREFIX) BIN_INSTALL_DIR= $(prefix)/bin LIB_INSTALL_DIR= $(prefix)/lib MAN_INSTALL_DIR= $(prefix)/man/man3 CC= cc AR= ar INSTALL= install PACKAGE_SOURCE= README efence.3 Makefile efence.h \ efence.c page.c print.c eftest.c tstheap.c CHANGES OBJECTS= efence.o page.o print.o all: libefence.a libefence.so.0.0 tstheap eftest # This test is not run. Breaks on pointyhat because the host # delivers a different "page-protection-violated" signal to what # is expected by the port running inside a lower-version jail. # (ie. in 6.x jail it expects SIGBUS, 7.x host delivers SIGSEGV). # @ echo # @ echo "Testing Electric Fence." # @ echo "After the last test, it should print that the test has PASSED." # EF_PROTECT_BELOW= && EF_PROTECT_FREE= && EF_ALIGNMENT= && ./eftest # ./tstheap 3072 # @ echo # @ echo "Electric Fence confidence test PASSED." # @ echo install: libefence.a efence.3 libefence.so.0.0 $(INSTALL) -m 755 ef.sh $(BIN_INSTALL_DIR)/ef $(INSTALL) -m 644 libefence.a $(LIB_INSTALL_DIR) $(INSTALL) -m 755 libefence.so.0.0 $(LIB_INSTALL_DIR) - rm -f $(LIB_INSTALL_DIR)/libefence.so.0 ln -s libefence.so.0.0 $(LIB_INSTALL_DIR)/libefence.so.0 - rm -f $(LIB_INSTALL_DIR)/libefence.so ln -s libefence.so.0.0 $(LIB_INSTALL_DIR)/libefence.so $(INSTALL) -m 644 efence.3 $(MAN_INSTALL_DIR)/efence.3 clean: - rm -f $(OBJECTS) tstheap.o eftest.o tstheap eftest \ libefence.a libefence.so.0.0 libefence.cat ElectricFence.shar roff: nroff -man < efence.3 > efence.cat ElectricFence.shar: $(PACKAGE_SOURCE) shar $(PACKAGE_SOURCE) > ElectricFence.shar shar: ElectricFence.shar libefence.a: $(OBJECTS) - rm -f libefence.a $(AR) crv libefence.a $(OBJECTS) libefence.so.0.0: $(OBJECTS) $(CC) $(CFLAGS) -shared -Wl,-soname,libefence.so.0 -o libefence.so.0.0 \ $(OBJECTS) $(LIB_PTHREADS) tstheap: libefence.a tstheap.o - rm -f tstheap $(CC) $(CFLAGS) tstheap.o libefence.a -o tstheap $(LIB_PTHREADS) eftest: libefence.a eftest.o - rm -f eftest $(CC) $(CFLAGS) eftest.o libefence.a -o eftest $(LIB_PTHREADS) $(OBJECTS) tstheap.o eftest.o: efence.h .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@