Skip to content

Commit 7a8ec83

Browse files
committed
fix Makefile when PQP is not found
1 parent f8cccd0 commit 7a8ec83

File tree

2 files changed

+62
-8
lines changed

2 files changed

+62
-8
lines changed

irteus/CPQP.C

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,51 +22,93 @@
2222
/// above copyright notice remains intact.
2323
///
2424

25+
#if HAVE_PQP
26+
#define CALL_WITH_PQP_CHECK(X) {/* X */}
27+
#else
28+
#define CALL_WITH_PQP_CHECK(X) fprintf(stderr, "jskeus is compiled without PQP because of non-free license, so you can not use function %s.\n", __PRETTY_FUNCTION__); X;
29+
#endif
30+
31+
#if HAVE_PQP
32+
2533
#include "PQP/src/PQP.h"
2634
#include "PQP/src/MatVec.h"
2735

36+
#else // HAVE_PQP
37+
38+
#define PQP_Model void
39+
#define PQP_REAL double
40+
41+
#endif // HAVE_PQP
42+
2843
#include <stdio.h>
2944
extern "C"{
3045

3146
PQP_Model *PQP_MakeModel()
3247
{
48+
#if ! HAVE_PQP
49+
CALL_WITH_PQP_CHECK(return (void *)NULL);
50+
#else
3351
return new PQP_Model();
52+
#endif // HAVE_PQP
3453
}
3554

3655
void PQP_DeleteModel(PQP_Model *m)
3756
{
57+
#if ! HAVE_PQP
58+
CALL_WITH_PQP_CHECK(return;);
59+
#else
3860
delete(m);
61+
#endif // HAVE_PQP
3962
}
4063

4164
int PQP_BeginModel(PQP_Model* m)
4265
{
66+
#if ! HAVE_PQP
67+
CALL_WITH_PQP_CHECK(return 0;);
68+
#else
4369
return m->BeginModel();
70+
#endif // HAVE_PQP
4471
}
4572

4673
int PQP_EndModel(PQP_Model* m)
4774
{
75+
#if ! HAVE_PQP
76+
CALL_WITH_PQP_CHECK(return 0;);
77+
#else
4878
return m->EndModel();
79+
#endif // HAVE_PQP
4980
}
5081

5182
int PQP_AddTri(PQP_Model *m, double p1[], double p2[], double p3[],
5283
int flag)
5384
{
85+
#if ! HAVE_PQP
86+
CALL_WITH_PQP_CHECK(return 0;);
87+
#else
5488
return m->AddTri(p1, p2, p3, flag);
89+
#endif // HAVE_PQP
5590
}
5691

5792
int PQP_Collide(double R1[3][3], double T1[3], PQP_Model *PQP_Model1,
5893
double R2[3][3], double T2[3], PQP_Model *PQP_Model2,
5994
int flag)
6095
{
96+
#if ! HAVE_PQP
97+
CALL_WITH_PQP_CHECK(return 0;);
98+
#else
6199
PQP_CollideResult cres;
62100
PQP_Collide(&cres, R1, T1, PQP_Model1, R2, T2, PQP_Model2, flag);
63101
return cres.NumPairs();
102+
#endif // HAVE_PQP
64103
}
65104

66105
double PQP_Distance(double R1[3][3], double T1[3], PQP_Model *PQP_Model1,
67106
double R2[3][3], double T2[3], PQP_Model *PQP_Model2,
68107
PQP_REAL *P1, PQP_REAL *P2, int qsize)
69108
{
109+
#if ! HAVE_PQP
110+
CALL_WITH_PQP_CHECK(return 0.0;)
111+
#else
70112
PQP_REAL V1[3], V2[3];
71113
PQP_DistanceResult dres;
72114
PQP_Distance(&dres, R1, T1, PQP_Model1, R2, T2, PQP_Model2, 0.0, 0.0, qsize);
@@ -75,6 +117,7 @@ double PQP_Distance(double R1[3][3], double T1[3], PQP_Model *PQP_Model1,
75117
MxVpV(P1, R1, V1, T1);
76118
MxVpV(P2, R2, V2, T2);
77119
return (double)(dres.Distance());
120+
#endif // HAVE_PQP
78121
}
79122
}
80123

irteus/Makefile

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,26 @@ else
4343
endif
4444
$(info "-- HAVE_BULLET = ${HAVE_BULLET}")
4545

46+
ifneq ($(wildcard PQP/*),)
47+
HAVE_PQP=1
48+
else
49+
HAVE_PQP=0
50+
endif
51+
$(info "-- HAVE_PQP = ${HAVE_PQP}")
52+
4653
# common
4754
WFLAGS= #-Wall
4855

4956
BINDIR=$(EUSDIR)/$(ARCHDIR)/bin
5057
OBJDIR=$(EUSDIR)/$(ARCHDIR)/obj
5158
LIBDIR=$(EUSDIR)/$(ARCHDIR)/lib
5259

53-
PQPLIBDIR=PQP/$(ARCHDIR)
54-
PQPLIB=-L$(PQPLIBDIR) -lPQP-static
60+
ifeq ($(HAVE_PQP), 1)
61+
PQPCFLAGS=-DHAVE_PQP=$(HAVE_PQP)
62+
PQPLIBDIR=PQP/$(ARCHDIR)
63+
PQPLIB=-L$(PQPLIBDIR) -lPQP-static
64+
PQPLIBSTATIC=PQP/$(ARCHDIR)/libPQP-static.a
65+
endif
5566

5667
ifeq ($(HAVE_BULLET), 1)
5768
BULLETCFLAGS=`pkg-config bullet --cflags` -DHAVE_BULLET=$(HAVE_BULLET)
@@ -137,7 +148,7 @@ $(LIBIRTEUS): $(IRTEUSOBJS) $(IRTCOBJECTS) $(LIBNR)
137148
$(LD) $(SOFLAGS) $(OUTOPT)$(LIBIRTEUS) $(IRTEUSOBJS) \
138149
$(IRTCOBJECTS) $(IMPLIB)
139150

140-
$(LIBIRTEUSG): $(IRTEUSGOBJS) $(IRTGCOBJECTS) $(LIBNR) PQP/$(ARCHDIR)/libPQP-static.a
151+
$(LIBIRTEUSG): $(IRTEUSGOBJS) $(IRTGCOBJECTS) $(LIBNR)
141152
$(LD) $(SOFLAGS) $(OUTOPT)$(LIBIRTEUSG) $(IRTEUSGOBJS) \
142153
$(IRTGCOBJECTS) $(IMPLIB) $(PQPLIB) $(BULLETLIB)
143154

@@ -206,7 +217,7 @@ clean:
206217
-rm -f $(EUSDIR)/irteus
207218
-rm -f $(INSTALLOBJDIR)/compile_*.log
208219
chmod a-x Makefile* *.l *.c
209-
(cd PQP;make clean)
220+
[ -e PQP ] && (cd PQP;make clean)
210221
(cd $(EUSDIR)/lisp/image/jpeg/; make clean)
211222
-rm -f $(EUSDIR)/lib/llib/pgsql.c $(EUSDIR)/lib/llib/pgsql.h
212223
-rm -f $(EUSDIR)/lib/llib/time.c $(EUSDIR)/lib/llib/time.h
@@ -236,14 +247,14 @@ $(INSTALLOBJDIR)/pgsql.$(OSFX): $(EUSDIR)/lib/llib/pgsql.l
236247
$(INSTALLOBJDIR)/time.$(OSFX): $(EUSDIR)/lib/llib/time.l
237248
$(INSTALLOBJDIR)/eusjpeg.$(OSFX): $(EUSDIR)/lisp/image/jpeg/eusjpeg.l
238249

239-
$(INSTALLOBJDIR)/irtc.$(OSFX): irtc.c $(filter-out $(INSTALLOBJDIR)/irtc.$(OSFX),$(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) PQP/$(ARCHDIR)/libPQP-static.a $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
250+
$(INSTALLOBJDIR)/irtc.$(OSFX): irtc.c $(filter-out $(INSTALLOBJDIR)/irtc.$(OSFX),$(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) $(PQPLIBSTATIC) $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
240251
$(CC) $(CFLAGS) $(WFLAGS) -c irtc.c $(OBJOPT)$(INSTALLOBJDIR)/irtc.$(OSFX)
241-
$(INSTALLOBJDIR)/irtglc.$(OSFX): irtglc.c $(filter-out $(INSTALLOBJDIR)/irtglc.$(OSFX),$(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) PQP/$(ARCHDIR)/libPQP-static.a $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
252+
$(INSTALLOBJDIR)/irtglc.$(OSFX): irtglc.c $(filter-out $(INSTALLOBJDIR)/irtglc.$(OSFX),$(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) $(PQPLIBSTATIC) $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
242253
$(CC) $(CFLAGS) $(WFLAGS) -c irtglc.c $(OBJOPT)$(INSTALLOBJDIR)/irtglc.$(OSFX)
243-
$(INSTALLOBJDIR)/irtgeoc.$(OSFX): irtgeoc.c $(filter-out $(INSTALLOBJDIR)/irtgeoc.$(OSFX), $(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) PQP/$(ARCHDIR)/libPQP-static.a $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
254+
$(INSTALLOBJDIR)/irtgeoc.$(OSFX): irtgeoc.c $(filter-out $(INSTALLOBJDIR)/irtgeoc.$(OSFX), $(IRTEUSOBJS) $(IRTEUSGOBJS) $(IRTGCOBJECTS) $(PQPLIBSTATIC) $(IRTEUSXOBJS) $(INSTALLLIBDIR)/jpegmemcd.$(LSFX) $(IRTEUSIMGOBJS) $(IRTIMGCOBJECTS) $(IRTEUSGLOBJS) $(IRTGLCOBJECTS)) defun.h
244255
$(CC) $(CFLAGS) $(WFLAGS) -c irtgeoc.c $(OBJOPT)$(INSTALLOBJDIR)/irtgeoc.$(OSFX)
245256
$(INSTALLOBJDIR)/CPQP.$(OSFX): CPQP.C defun.h
246-
$(CXX) $(CXXFLAGS) -c CPQP.C $(OBJOPT)$(INSTALLOBJDIR)/CPQP.$(OSFX)
257+
$(CXX) $(CXXFLAGS) $(PQPCFLAGS) -c CPQP.C $(OBJOPT)$(INSTALLOBJDIR)/CPQP.$(OSFX)
247258
$(INSTALLOBJDIR)/euspqp.$(OSFX): euspqp.c defun.h
248259
$(CC) $(CFLAGS) $(WFLAGS) -c euspqp.c $(OBJOPT)$(INSTALLOBJDIR)/euspqp.$(OSFX)
249260
$(INSTALLOBJDIR)/CBULLET.$(OSFX): CBULLET.cpp defun.h

0 commit comments

Comments
 (0)