Browse Source

Fix default compilation to build without libstdc++ dependency

mingodad 7 years ago
parent
commit
8daffa5070

+ 2 - 2
SquiLu/Makefile

@@ -1,7 +1,7 @@
 
 
 SQUIRREL=.
 SQUIRREL=.
-MAKE=make CC=g++ CC_EXTRA_FLAGS="-flto -DNDEBUG -DONLY_ASCII -DNO_ABSTRACT_METHOD -DCUSTOM_DELETE_OPERATOR -DSQ_USE_MKSTEMP  -DSQ_ENABLE_INCLUDES -DSQ_SUBLATIN -DNEED_SUBLATIN_C -DSQUSEDOUBLE" \
-	LD_EXTRA_FLAGS="-flto"
+MAKE=make CC=g++ CC_EXTRA_FLAGS="-fno-rtti -fno-exceptions -DNDEBUG -DONLY_ASCII -DNO_ABSTRACT_METHOD -DCUSTOM_DELETE_OPERATOR -DSQ_USE_MKSTEMP  -DSQ_ENABLE_INCLUDES -DSQ_SUBLATIN -DNEED_SUBLATIN_C -DSQUSEDOUBLE" \
+	LD_EXTRA_FLAGS=""
 #MAKE=make CC=g++ CC_EXTRA_FLAGS="-fsanitize=address -DONLY_ASCII -DSQ_USE_MKSTEMP -DSQ_ENABLE_INCLUDES -DSQ_SUBLATIN -DNEED_SUBLATIN_C -DSQUSEDOUBLE"
 #MAKE=make CC=g++ CC_EXTRA_FLAGS="-fsanitize=address -DONLY_ASCII -DSQ_USE_MKSTEMP -DSQ_ENABLE_INCLUDES -DSQ_SUBLATIN -DNEED_SUBLATIN_C -DSQUSEDOUBLE"
 #MAKE=make
 #MAKE=make
 
 

+ 5 - 0
SquiLu/include/sqconfig.h

@@ -1,3 +1,8 @@
+#ifndef NO_ABSTRACT_METHOD
+#define ABSTRACT_METHOD(m, i) m =0
+#else
+#define ABSTRACT_METHOD(m, i) m i
+#endif
 
 
 #ifdef _SQ64
 #ifdef _SQ64
 
 

+ 9 - 9
SquiLu/include/sqstdio.h

@@ -8,15 +8,15 @@
 
 
 struct SQStream {
 struct SQStream {
     virtual ~SQStream() {}
     virtual ~SQStream() {}
-	virtual SQInteger Read(void *buffer, SQInteger size) = 0;
-	virtual SQInteger Gets(char *buffer, SQInteger size) = 0;
-	virtual SQInteger Write(const void *buffer, SQInteger size) = 0;
-	virtual SQInteger Flush() = 0;
-	virtual SQInteger Tell() = 0;
-	virtual SQInteger Len() = 0;
-	virtual SQInteger Seek(SQInteger offset, SQInteger origin) = 0;
-	virtual bool IsValid() = 0;
-	virtual bool EOS() = 0;
+	ABSTRACT_METHOD(virtual SQInteger Read(void *buffer, SQInteger size), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Gets(char *buffer, SQInteger size), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Write(const void *buffer, SQInteger size), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Flush(), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Tell(), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Len(), {return 0;});
+	ABSTRACT_METHOD(virtual SQInteger Seek(SQInteger offset, SQInteger origin), {return 0;});
+	ABSTRACT_METHOD(virtual bool IsValid(), {return false;});
+	ABSTRACT_METHOD(virtual bool EOS(), {return true;});
 };
 };
 
 
 extern "C" {
 extern "C" {

+ 5 - 4
SquiLu/sq/Makefile

@@ -5,6 +5,7 @@ OUT= $(SQUIRREL)/bin/sq
 INCZ= -I$(SQUIRREL)/include -I. -I$(SQUIRREL)/sqlibs -DNO_EXCEPTION_KEY_NOT_FOUND22=1
 INCZ= -I$(SQUIRREL)/include -I. -I$(SQUIRREL)/sqlibs -DNO_EXCEPTION_KEY_NOT_FOUND22=1
 LIBZ= -L$(SQUIRREL)/lib 
 LIBZ= -L$(SQUIRREL)/lib 
 LIB= -lsquirrel -lsqstdlib -lm $(LD_EXTRA_FLAGS)
 LIB= -lsquirrel -lsqstdlib -lm $(LD_EXTRA_FLAGS)
+DEFS= $(CC_EXTRA_FLAGS) $(LD_EXTRA_FLAGS)
 
 
 OBJS= sq.o
 OBJS= sq.o
 	
 	
@@ -12,11 +13,11 @@ SRCS= sq.c
 	
 	
 	
 	
 sq32:
 sq32:
-	g++ -O2 -s -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB)
+	g++ -O2 -s -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) $(DEFS)
 
 
 sqprof:
 sqprof:
-	g++ -O2 -pg  -pie -gstabs -g3 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB)
+	g++ -O2 -pg  -pie -gstabs -g3 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) $(DEFS)
 	
 	
 sq64:
 sq64:
-	g++ -O2 -s -m64 -D_SQ64 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB)
-#	g++ -g -m64 -D_SQ64 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB)
+	g++ -O2 -s -m64 -D_SQ64 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) $(DEFS)
+#	g++ -g -m64 -D_SQ64 -o $(OUT) $(SRCS) $(INCZ) $(LIBZ) $(LIB) $(DEFS)

+ 5 - 0
SquiLu/squirrel/sqmem.cpp

@@ -16,4 +16,9 @@ void operator delete(void *p, unsigned long len)
 	printf("DELETE SHOULD NOT BE CALLED %p : %d\n", p, (int)len);
 	printf("DELETE SHOULD NOT BE CALLED %p : %d\n", p, (int)len);
 	assert(0);
 	assert(0);
 }
 }
+void operator delete(void *p)
+{
+	printf("DELETE SHOULD NOT BE CALLED %p\n", p);
+	assert(0);
+}
 #endif
 #endif

+ 0 - 5
SquiLu/squirrel/sqobject.h

@@ -84,11 +84,6 @@ enum SQMetaMethod{
 
 
 #define MINPOWER2 4
 #define MINPOWER2 4
 
 
-#ifndef NO_ABSTRACT_METHOD
-#define ABSTRACT_METHOD(m, i) m =0
-#else
-#define ABSTRACT_METHOD(m, i) m i
-#endif
 struct SQRefCounted
 struct SQRefCounted
 {
 {
 	SQUnsignedInteger _uiRef;
 	SQUnsignedInteger _uiRef;