mirror of
https://github.com/Dark98/SliceBeam.git
synced 2026-07-07 16:59:05 +00:00
Public source code release
This commit is contained in:
@@ -0,0 +1,290 @@
|
||||
# Simple gcc Makefile for reentrant qhull and rbox (default gcc/g++)
|
||||
#
|
||||
# make help
|
||||
# See README.txt and ../../Makefile
|
||||
#
|
||||
# Variables
|
||||
# DESTDIR directory for staged installs (GNU Makefile standards)
|
||||
# PREFIX install directory for 'make install' (default /usr/local)
|
||||
# BINDIR directory where to copy executables
|
||||
# DOCDIR directory where to copy html documentation
|
||||
# INCDIR directory where to copy headers
|
||||
# LIBDIR directory where to copy libraries
|
||||
# MANDIR directory where to copy manual pages
|
||||
# PCDIR directory where to copy pkg-config files
|
||||
# PRINTMAN command for printing manual pages
|
||||
# PRINTC command for printing C files
|
||||
# CC ANSI C or C++ compiler
|
||||
# CC_OPTS1 options used to compile .c files
|
||||
# CC_OPTS2 options used to link .o files
|
||||
# CC_OPTS3 options to build shared libraries
|
||||
#
|
||||
# LIBQHULL_OBJS .o files for linking
|
||||
# LIBQHULL_HDRS .h files for printing
|
||||
# CFILES .c files for printing
|
||||
# DOCFILES documentation files
|
||||
# FILES miscellaneous files for printing
|
||||
# TFILES .txt versions of html files
|
||||
# FILES all other files
|
||||
# LIBQHULL_OBJS specifies the object files of libqhullstatic_r.a
|
||||
#
|
||||
# Results
|
||||
# rbox Generates points sets for qhull, qconvex, etc.
|
||||
# qhull Computes convex hulls and related structures
|
||||
# qconvex, qdelaunay, qhalf, qvoronoi
|
||||
# Specializations of qhull for each geometric structure
|
||||
# libqhullstatic_r.a Static library for reentrant qhull
|
||||
# testqset_r Standalone test of reentrant qset_r.c with mem_r.c
|
||||
# user_eg An example of using qhull (reentrant)
|
||||
# user_eg2 An example of using qhull (reentrant)
|
||||
#
|
||||
# Make targets
|
||||
# make Build results using gcc or another compiler
|
||||
# make all
|
||||
# make clean Remove object files
|
||||
# make cleanall Remove generated files
|
||||
# make doc Print documentation
|
||||
# make help
|
||||
# make install Copy results and documentation to BINDIR, DOCDIR, INCDIR, LIBDIR, MANDIR, PCDOC
|
||||
# make uninstall Delete Qhull files from BINDIR, DOCDIR, INCDIR, LIBDIR, MANDIR, PCDOC
|
||||
# make new Rebuild qhull and rbox from source
|
||||
# make printall Print all files
|
||||
# make qtest Quick test of qset, rbox, and qhull
|
||||
# make test Quck test of qhull, qconvex, etc.
|
||||
#
|
||||
# $Id: //main/2019/qhull/src/libqhull_r/Makefile#13 $
|
||||
|
||||
# Do not replace tabs with spaces. Needed for build rules
|
||||
# Unix line endings (\n)
|
||||
|
||||
PREFIX ?= /usr/local
|
||||
BINDIR ?= bin
|
||||
INCDIR ?= include
|
||||
LIBDIR ?= lib
|
||||
DOCDIR ?= share/doc/qhull
|
||||
MANDIR ?= share/man/man1
|
||||
PCDIR ?= $(LIBDIR)/pkgconfig
|
||||
|
||||
ABS_BINDIR = $(DESTDIR)$(PREFIX)/$(BINDIR)
|
||||
ABS_INCDIR = $(DESTDIR)$(PREFIX)/$(INCDIR)
|
||||
ABS_LIBDIR = $(DESTDIR)$(PREFIX)/$(LIBDIR)
|
||||
ABS_DOCDIR = $(DESTDIR)$(PREFIX)/$(DOCDIR)
|
||||
ABS_MANDIR = $(DESTDIR)$(PREFIX)/$(MANDIR)
|
||||
ABS_PCDIR = $(DESTDIR)$(PREFIX)/$(PCDIR)
|
||||
|
||||
qhull_VERSION=$(shell grep 'set.qhull_VERSION ' ../../CMakeLists.txt | grep -o '[0-9.]\+' || echo 0unknown)
|
||||
|
||||
# if you do not have enscript, try a2ps or just use lpr. The files are text.
|
||||
PRINTMAN = enscript -2rl
|
||||
PRINTC = enscript -2r
|
||||
# PRINTMAN = lpr
|
||||
# PRINTC = lpr
|
||||
|
||||
#for Gnu's gcc compiler, -O3 for optimization, -g for debugging, -pg for profiling
|
||||
# caller may define CC_WARNINGS
|
||||
# Qhull uses less memory for 32-bit builds on 64-bit hosts
|
||||
# Enable 32-bit builds with 'make M32=-m32'
|
||||
# M32 = -m32
|
||||
# -fpic is required for linking to shared libraries
|
||||
# -fpic may be slower for 32-bit builds on 64-bit hosts
|
||||
# Disable -fpic with 'make FPIC='
|
||||
FPIC = -fpic
|
||||
CC = gcc
|
||||
CC_OPTS1 = -O3 -ansi -I../../src $(CC_WARNINGS) $(M32) $(FPIC)
|
||||
|
||||
# for Sun's cc compiler, -fast or O2 for optimization, -g for debugging, -Xc for ANSI
|
||||
#CC = cc
|
||||
#CC_OPTS1 = -Xc -v -fast -I../../src
|
||||
|
||||
# for Silicon Graphics cc compiler, -O2 for optimization, -g for debugging
|
||||
#CC = cc
|
||||
#CC_OPTS1 = -ansi -O2 -I../../src
|
||||
|
||||
# for Next cc compiler with fat executable
|
||||
#CC = cc
|
||||
#CC_OPTS1 = -ansi -O2 -I../../src -arch m68k -arch i386 -arch hppa
|
||||
|
||||
# For loader, ld,
|
||||
CC_OPTS2 = $(CC_OPTS1)
|
||||
|
||||
# Default targets for make
|
||||
|
||||
all: qhull_links qhull_all qtest
|
||||
|
||||
help:
|
||||
head -n 54 Makefile
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
# Delete linked files from other directories [qhull_links]
|
||||
rm -f qconvex_r.c unix_r.c qdelaun_r.c qhalf_r.c qvoronoi_r.c rbox_r.c
|
||||
rm -f user_eg_r.c user_eg2_r.c testqset_r.c
|
||||
|
||||
cleanall: clean
|
||||
rm -f qconvex qdelaunay qhalf qvoronoi qhull *.exe
|
||||
rm -f core user_eg_r user_eg2_r testqset_r libqhullstatic_r.a
|
||||
|
||||
doc:
|
||||
$(PRINTMAN) $(TXTFILES) $(DOCFILES)
|
||||
|
||||
install:
|
||||
mkdir -p $(ABS_BINDIR)
|
||||
mkdir -p $(ABS_DOCDIR)
|
||||
mkdir -p $(ABS_DOCDIR)/src
|
||||
mkdir -p $(ABS_INCDIR)/libqhull_r
|
||||
mkdir -p $(ABS_LIBDIR)
|
||||
mkdir -p $(ABS_MANDIR)
|
||||
mkdir -p $(ABS_PCDIR)
|
||||
cp -p qconvex qdelaunay qhalf qhull qvoronoi rbox $(ABS_BINDIR)
|
||||
cp -p libqhullstatic_r.a $(ABS_LIBDIR)
|
||||
(cd ../.. && cp -p README.txt REGISTER.txt Announce.txt COPYING.txt index.htm $(ABS_DOCDIR)/)
|
||||
(cd ../.. && cp -pr html $(ABS_DOCDIR)/)
|
||||
(cd ../.. && cp -p src/Changes.txt $(ABS_DOCDIR)/src/)
|
||||
cp -p ../../html/qhull.man $(ABS_MANDIR)/qhull.1
|
||||
cp -p ../../html/rbox.man $(ABS_MANDIR)/rbox.1
|
||||
cp *.h $(ABS_INCDIR)/libqhull_r
|
||||
sed \
|
||||
-e 's#@qhull_VERSION@#$(qhull_VERSION)#' \
|
||||
-e 's#@CMAKE_INSTALL_PREFIX@#$(PREFIX)#' \
|
||||
-e 's#@LIB_INSTALL_DIR@#$(LIBDIR)#' \
|
||||
-e 's#@INCLUDE_INSTALL_DIR@#$(INCDIR)#' \
|
||||
-e 's#@LIBRARY_NAME@#qhullstatic_r#' \
|
||||
-e 's#@LIBRARY_DESCRIPTION@#Qhull reentrant static library#' \
|
||||
../../build/qhull.pc.in > $(ABS_PCDIR)/qhullstatic_r.pc
|
||||
|
||||
uninstall:
|
||||
-(cd $(ABS_BINDIR) && rm -f qconvex qdelaunay qhalf qhull qvoronoi rbox)
|
||||
-(cd $(ABS_BINDIR) && rm -f qconvex.exe qdelaunay.exe qhalf.exe qhull.exe qvoronoi.exe rbox.exe)
|
||||
-(cd $(ABS_MANDIR) && rm -f qhull.1 rbox.1)
|
||||
-(cd $(ABS_DOCDIR) && rm -f README.txt REGISTER.txt Announce.txt COPYING.txt index.htm src/Changes.txt)
|
||||
-(cd $(ABS_DOCDIR) && rm -rf html)
|
||||
-(cd $(ABS_LIBDIR) && rm -f libqhullstatic_r.a)
|
||||
-(cd $(ABS_INCDIR) && rm -rf libqhull_r)
|
||||
-(cd $(ABS_PCDIR) && rm -f qhullstatic_r.pc)
|
||||
-rmdir $(ABS_DOCDIR)/src
|
||||
-rmdir $(ABS_DOCDIR)
|
||||
|
||||
new: cleanall all
|
||||
|
||||
printall: doc printh printc printf
|
||||
|
||||
printh:
|
||||
$(PRINTC) $(LIBQHULL_HDRS)
|
||||
|
||||
printc:
|
||||
$(PRINTC) $(CFILES)
|
||||
|
||||
# LIBQHULL_OBJS_1 ordered by frequency of execution with small files at end. Better locality.
|
||||
# Same definitions as ../../Makefile
|
||||
|
||||
LIBQHULLS_OBJS_1= global_r.o stat_r.o geom2_r.o poly2_r.o merge_r.o \
|
||||
libqhull_r.o geom_r.o poly_r.o qset_r.o mem_r.o random_r.o
|
||||
|
||||
LIBQHULLS_OBJS_2= $(LIBQHULLS_OBJS_1) usermem_r.o userprintf_r.o io_r.o user_r.o
|
||||
|
||||
LIBQHULLS_OBJS= $(LIBQHULLS_OBJS_2) rboxlib_r.o userprintf_rbox_r.o
|
||||
|
||||
LIBQHULL_HDRS= user_r.h libqhull_r.h qhull_ra.h geom_r.h \
|
||||
io_r.h mem_r.h merge_r.h poly_r.h random_r.h \
|
||||
qset_r.h stat_r.h
|
||||
|
||||
# CFILES for 'printc', ordered alphabetically after libqhull_r.c
|
||||
CFILES= ../qhull/unix_r.c libqhull_r.c geom_r.c geom2_r.c global_r.c io_r.c \
|
||||
mem_r.c merge_r.c poly_r.c poly2_r.c random_r.c rboxlib_r.c \
|
||||
qset_r.c stat_r.c user_r.c usermem_r.c userprintf_r.c \
|
||||
../qconvex/qconvex_r.c ../qdelaunay/qdelaun_r.c \
|
||||
../qhalf/qhalf_r.c ../qvoronoi/qvoronoi_r.c
|
||||
|
||||
TXTFILES= ../../Announce.txt ../../REGISTER.txt ../../COPYING.txt ../../README.txt ../Changes.txt
|
||||
DOCFILES= ../../html/rbox.txt ../../html/qhull.txt
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CC_OPTS1) -o $@ $<
|
||||
|
||||
# Work around problems with ../ in Red Hat Linux
|
||||
qhull_links:
|
||||
# On MINSYS, 'ln -s' may create a copy instead of a symbolic link
|
||||
[ -f qconvex_r.c ] || ln -s ../qconvex/qconvex_r.c
|
||||
[ -f qdelaun_r.c ] || ln -s ../qdelaunay/qdelaun_r.c
|
||||
[ -f qhalf_r.c ] || ln -s ../qhalf/qhalf_r.c
|
||||
[ -f qvoronoi_r.c ] || ln -s ../qvoronoi/qvoronoi_r.c
|
||||
[ -f rbox_r.c ] || ln -s ../rbox/rbox_r.c
|
||||
[ -f testqset_r.c ] || ln -s ../testqset_r/testqset_r.c
|
||||
[ -f unix_r.c ] || ln -s ../qhull/unix_r.c
|
||||
[ -f user_eg_r.c ] || ln -s ../user_eg/user_eg_r.c
|
||||
[ -f user_eg2_r.c ] || ln -s ../user_eg2/user_eg2_r.c
|
||||
# user_eg3_r.c not compiled. It requires all of libqhullcpp; use qhull/Makefile instead
|
||||
|
||||
# compile qhull without using bin/libqhullstatic_r.a
|
||||
qhull_all: qconvex_r.o qdelaun_r.o qhalf_r.o qvoronoi_r.o unix_r.o user_eg_r.o user_eg2_r.o rbox_r.o testqset_r.o $(LIBQHULLS_OBJS)
|
||||
$(CC) -o qconvex $(CC_OPTS2) $(LIBQHULLS_OBJS_2) qconvex_r.o -lm
|
||||
$(CC) -o qdelaunay $(CC_OPTS2) $(LIBQHULLS_OBJS_2) qdelaun_r.o -lm
|
||||
$(CC) -o qhalf $(CC_OPTS2) $(LIBQHULLS_OBJS_2) qhalf_r.o -lm
|
||||
$(CC) -o qvoronoi $(CC_OPTS2) $(LIBQHULLS_OBJS_2) qvoronoi_r.o -lm
|
||||
$(CC) -o qhull $(CC_OPTS2) $(LIBQHULLS_OBJS_2) unix_r.o -lm
|
||||
$(CC) -o rbox $(CC_OPTS2) $(LIBQHULLS_OBJS) rbox_r.o -lm
|
||||
$(CC) -o user_eg $(CC_OPTS2) $(LIBQHULLS_OBJS_2) user_eg_r.o -lm
|
||||
$(CC) -o user_eg2 $(CC_OPTS2) $(LIBQHULLS_OBJS_1) user_eg2_r.o usermem_r.o userprintf_r.o io_r.o -lm
|
||||
$(CC) -o testqset_r $(CC_OPTS2) mem_r.o qset_r.o usermem_r.o testqset_r.o -lm
|
||||
-ar -rs libqhullstatic_r.a $(LIBQHULLS_OBJS)
|
||||
#libqhullstatic_r.a is not needed for qhull
|
||||
#If 'ar -rs' fails try using 'ar -s' with 'ranlib'
|
||||
#ranlib libqhullstatic_r.a
|
||||
|
||||
qtest:
|
||||
@echo ============================================
|
||||
@echo == make qtest ==============================
|
||||
@echo ============================================
|
||||
@echo -n "== "
|
||||
@date
|
||||
@echo
|
||||
@echo Testing qset_r.c and mem_r.c with testqset_r
|
||||
./testqset_r 10000
|
||||
@echo Run the qhull smoketest
|
||||
./rbox D4 | ./qhull
|
||||
@echo ============================================
|
||||
@echo == To smoketest qhull programs
|
||||
@echo '== make test'
|
||||
@echo ============================================
|
||||
@echo
|
||||
@echo ============================================
|
||||
@echo == To install qhull or show help
|
||||
@echo '== make help'
|
||||
@echo '== make install'
|
||||
@echo ============================================
|
||||
@echo
|
||||
|
||||
test: qtest
|
||||
@echo ==============================
|
||||
@echo ========= qconvex ============
|
||||
@echo ==============================
|
||||
-./rbox 10 | ./qconvex Tv
|
||||
@echo
|
||||
@echo ==============================
|
||||
@echo ========= qdelaunay ==========
|
||||
@echo ==============================
|
||||
-./rbox 10 | ./qdelaunay Tv
|
||||
@echo
|
||||
@echo ==============================
|
||||
@echo ========= qhalf ==============
|
||||
@echo ==============================
|
||||
-./rbox 10 | ./qconvex FQ FV n Tv | ./qhalf Tv
|
||||
@echo
|
||||
@echo ==============================
|
||||
@echo ========= qvoronoi ===========
|
||||
@echo ==============================
|
||||
-./rbox 10 | ./qvoronoi Tv
|
||||
@echo
|
||||
@echo ==============================
|
||||
@echo ========= user_eg ============
|
||||
@echo == w/o shared library ========
|
||||
@echo ==============================
|
||||
-./user_eg
|
||||
@echo
|
||||
@echo ==============================
|
||||
@echo ========= user_eg2 ===========
|
||||
@echo ==============================
|
||||
-./user_eg2
|
||||
@echo
|
||||
|
||||
# end of Makefile
|
||||
Reference in New Issue
Block a user