mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-20 15:21:21 -06:00
240 lines
8.1 KiB
Makefile
240 lines
8.1 KiB
Makefile
# Simple gcc Makefile for non-reentrant qhull and rbox (default gcc/g++)
|
|
#
|
|
# make help
|
|
# See README.txt and ../../Makefile
|
|
#
|
|
# Variables
|
|
# BINDIR directory where to copy executables
|
|
# DESTDIR destination directory for 'make install'
|
|
# 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
|
|
# 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 non-reentrant qhull
|
|
# testqset_r Standalone test of non-reentrant qset_r.c with mem_r.c
|
|
# user_eg An example of using qhull (non-reentrant)
|
|
# user_eg2 An example of using qhull (non-reentrant)
|
|
#
|
|
# Make targets
|
|
# make Build results using gcc or another compiler
|
|
# make clean Remove object files
|
|
# make cleanall Remove generated files
|
|
# make doc Print documentation
|
|
# make help
|
|
# make install Copy qhull, rbox, qhull.1, rbox.1 to BINDIR, MANDIR
|
|
# 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.
|
|
#
|
|
# Do not replace tabs with spaces. Needed for build rules
|
|
# Unix line endings (\n)
|
|
# $Id: //main/2015/qhull/src/libqhull/Makefile#8 $
|
|
|
|
DESTDIR = /usr/local
|
|
BINDIR = $(DESTDIR)/bin
|
|
INCDIR = $(DESTDIR)/include
|
|
LIBDIR = $(DESTDIR)/lib
|
|
DOCDIR = $(DESTDIR)/share/doc/qhull
|
|
MANDIR = $(DESTDIR)/share/man/man1
|
|
|
|
# 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
|
|
# -fpic needed for gcc x86_64-linux-gnu. Not needed for mingw
|
|
CC = gcc
|
|
CC_OPTS1 = -O3 -ansi -I../../src -fpic $(CC_WARNINGS)
|
|
|
|
# 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 50 Makefile
|
|
|
|
clean:
|
|
rm -f *.o
|
|
# Delete linked files from other directories [qhull_links]
|
|
rm -f qconvex.c unix.c qdelaun.c qhalf.c qvoronoi.c rbox.c
|
|
rm -f user_eg.c user_eg2.c testqset.c
|
|
|
|
cleanall: clean
|
|
rm -f qconvex qdelaunay qhalf qvoronoi qhull *.exe
|
|
rm -f core user_eg user_eg2 testqset libqhullstatic.a
|
|
|
|
doc:
|
|
$(PRINTMAN) $(TXTFILES) $(DOCFILES)
|
|
|
|
install:
|
|
mkdir -p $(BINDIR)
|
|
mkdir -p $(DOCDIR)
|
|
mkdir -p $(INCDIR)/libqhull
|
|
mkdir -p $(MANDIR)
|
|
cp -p qconvex qdelaunay qhalf qhull qvoronoi rbox $(BINDIR)
|
|
cp -p libqhullstatic.a $(LIBDIR)
|
|
cp -p ../../html/qhull.man $(MANDIR)/qhull.1
|
|
cp -p ../../html/rbox.man $(MANDIR)/rbox.1
|
|
cp -p ../../html/* $(DOCDIR)
|
|
cp *.h $(INCDIR)/libqhull
|
|
|
|
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.o stat.o geom2.o poly2.o merge.o \
|
|
libqhull.o geom.o poly.o qset.o mem.o random.o
|
|
|
|
LIBQHULLS_OBJS_2= $(LIBQHULLS_OBJS_1) usermem.o userprintf.o io.o user.o
|
|
|
|
LIBQHULLS_OBJS= $(LIBQHULLS_OBJS_2) rboxlib.o userprintf_rbox.o
|
|
|
|
LIBQHULL_HDRS= user.h libqhull.h qhull_a.h geom.h \
|
|
io.h mem.h merge.h poly.h random.h \
|
|
qset.h stat.h
|
|
|
|
# CFILES ordered alphabetically after libqhull.c
|
|
CFILES= ../qhull/unix.c libqhull.c geom.c geom2.c global.c io.c \
|
|
mem.c merge.c poly.c poly2.c random.c rboxlib.c \
|
|
qset.c stat.c user.c usermem.c userprintf.c \
|
|
../qconvex/qconvex.c ../qdelaunay/qdelaun.c ../qhalf/qhalf.c ../qvoronoi/qvoronoi.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.c ] || ln -s ../qconvex/qconvex.c
|
|
[ -f qdelaun.c ] || ln -s ../qdelaunay/qdelaun.c
|
|
[ -f qhalf.c ] || ln -s ../qhalf/qhalf.c
|
|
[ -f qvoronoi.c ] || ln -s ../qvoronoi/qvoronoi.c
|
|
[ -f rbox.c ] || ln -s ../rbox/rbox.c
|
|
[ -f testqset.c ] || ln -s ../testqset/testqset.c
|
|
[ -f unix.c ] || ln -s ../qhull/unix.c
|
|
[ -f user_eg.c ] || ln -s ../user_eg/user_eg.c
|
|
[ -f user_eg2.c ] || ln -s ../user_eg2/user_eg2.c
|
|
|
|
# compile qhull without using bin/libqhullstatic.a
|
|
qhull_all: qconvex.o qdelaun.o qhalf.o qvoronoi.o unix.o user_eg.o user_eg2.o rbox.o testqset.o $(LIBQHULLS_OBJS)
|
|
$(CC) -o qconvex $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) qconvex.o
|
|
$(CC) -o qdelaunay $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) qdelaun.o
|
|
$(CC) -o qhalf $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) qhalf.o
|
|
$(CC) -o qvoronoi $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) qvoronoi.o
|
|
$(CC) -o qhull $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) unix.o
|
|
$(CC) -o rbox $(CC_OPTS2) -lm $(LIBQHULLS_OBJS) rbox.o
|
|
$(CC) -o user_eg $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_2) user_eg.o
|
|
$(CC) -o user_eg2 $(CC_OPTS2) -lm $(LIBQHULLS_OBJS_1) user_eg2.o usermem.o userprintf.o io.o
|
|
$(CC) -o testqset $(CC_OPTS2) -lm mem.o qset.o usermem.o testqset.o
|
|
-ar -rs libqhullstatic.a $(LIBQHULLS_OBJS)
|
|
#libqhullstatic.a is not needed for qhull
|
|
#If 'ar -rs' fails try using 'ar -s' with 'ranlib'
|
|
#ranlib libqhullstatic.a
|
|
|
|
qtest:
|
|
@echo ============================================
|
|
@echo == make qtest ==============================
|
|
@echo ============================================
|
|
@echo -n "== "
|
|
@date
|
|
@echo
|
|
@echo Testing qset.c and mem.c with testqset
|
|
./testqset 10000
|
|
@echo Run the qhull smoketest
|
|
./rbox D4 | ./qhull
|
|
@echo ============================================
|
|
@echo == To smoketest qhull programs
|
|
@echo '== make test'
|
|
@echo ============================================
|
|
@echo
|
|
@echo ============================================
|
|
@echo == For all make targets
|
|
@echo '== make help'
|
|
@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
|