diff --git a/luprex/core/Makefile b/luprex/core/Makefile index 6171b3a2..c8c082de 100644 --- a/luprex/core/Makefile +++ b/luprex/core/Makefile @@ -1,15 +1,26 @@ -OS=unspecified + ifeq ($(OS),mingw) EXE=main.exe LIBS=-lws2_32 LUAFLAGS=-DLUA_COMPAT_ALL + OPT=-g -O1 + DRIVER=driver-mingw else ifeq ($(OS),linux) EXE=main LIBS= LUAFLAGS=-DLUA_USE_POSIX + OPT=-g -O1 + DRIVER=driver-linux else - $(error You must specify OS=linux or OS=mingw) + # In this case, any attempt to build luprex will trigger an error, + # But making 'clean' will still work. + ERROR=$(error You must specify OS=linux or OS=mingw) + EXE=main + LIBS=$(ERROR) + LUAFLAGS=$(ERROR) + OPT=$(ERROR) + DRIVER=driver-xxx endif LUA_OBJ_FILES=\ @@ -80,18 +91,18 @@ CORE_OBJ_FILES=\ obj/drivertests.o\ obj/printbuffer.o\ obj/main.o \ - obj/driver-$(OS).o\ + obj/$(DRIVER).o\ lobj/%.o: ../eris-master/src/%.c - gcc -Wall -g -DLUA_USE_APICHECK $(LUAFLAGS) -c -MMD $< -o $@ + gcc -Wall $(OPT) -DLUA_USE_APICHECK $(LUAFLAGS) -c -MMD $< -o $@ obj/%.o: cpp/%.cpp - g++ -std=c++17 -Wall -g -Iinc -Icpp -c -MMD $< -o $@ + g++ -std=c++17 -Wall $(OPT) -Iinc -Icpp -c -MMD $< -o $@ $(EXE): $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) - g++ -std=c++17 -Wall -g -o $@ $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) $(LIBS) + g++ -std=c++17 -Wall $(OPT) -o $@ $(CORE_OBJ_FILES) $(LUA_OBJ_FILES) $(LIBS) clean: rm -f main.exe main obj/* lobj/* diff --git a/luprex/core/cpp/streambuffer.cpp b/luprex/core/cpp/streambuffer.cpp index e7730add..8e9313c8 100644 --- a/luprex/core/cpp/streambuffer.cpp +++ b/luprex/core/cpp/streambuffer.cpp @@ -107,7 +107,7 @@ char *StreamBuffer::get_overwrite(int64_t size, int64_t write_count_after) { void StreamBuffer::clear() { assert(owned_); if (!fixed_size_) { - if (buf_lo_ != nullptr) delete buf_lo_; + if (buf_lo_ != nullptr) free(buf_lo_); buf_lo_ = 0; buf_hi_ = 0; }