From 82f663e5a2a997003446231c8a9d47e2d2c93d34 Mon Sep 17 00:00:00 2001 From: olsner Date: Wed, 14 Sep 2005 23:55:56 +0000 Subject: [PATCH] Renamed output files in the generated GNU makefiles so that e.g. ia32.asm and ia32.cpp don't generate the same object file This was SVN commit r2728. --- build/premake/src/Src/gnu.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/build/premake/src/Src/gnu.c b/build/premake/src/Src/gnu.c index 386b055e67..16d1dba422 100644 --- a/build/premake/src/Src/gnu.c +++ b/build/premake/src/Src/gnu.c @@ -170,11 +170,17 @@ static int writeRootMakefile() //----------------------------------------------------------------------------- +char buffer[4096]; static const char* checkCppSources(const char* file, void* data) { if (isCppFile(file)) - return replaceExtension(getFilename(file,0), OBJECTS_EXT); - return NULL; + { + strcpy(buffer, getFilename(file, 0)); + strcat(buffer, ".o"); + return buffer; + } + else + return NULL; } static const char* checkCppFlags(const char* flag, void* data) @@ -351,7 +357,7 @@ static int writeCppPackage(Package* package) for (i = 0; CPP_EXT[i]; ++i) { - fprintf(file, "%s/%%.o : %%%s\n", OBJECTS_DIR, CPP_EXT[i]); + fprintf(file, "%s/%%%s.o : %%%s\n", OBJECTS_DIR, CPP_EXT[i], CPP_EXT[i]); fprintf(file, "\t-%sif [ ! -d %s ]; then mkdir %s; fi\n", prefix, OBJECTS_DIR, OBJECTS_DIR); if (!verbose) fprintf(file, "\t@echo $(notdir $<)\n"); @@ -372,17 +378,17 @@ static int writeCppPackage(Package* package) /* nasm -f elf -o $@ $< nasm -M -o $@ $< >OBJ_DIR/$*.P */ fprintf(file, "\t%snasm -f elf -o $@ $<\n", prefix); - fprintf(file, "\t%snasm -M -o $@ $< >$*.d\n", prefix); + fprintf(file, "\t%snasm -M -o $@ $< >$(> %s/$*.P; \\\n", OBJECTS_DIR, OBJECTS_DIR); - fprintf(file, "\trm -f %s/$*.d\n\n", OBJECTS_DIR); + fprintf(file, "\t -e '/^$$/ d' -e 's/$$/ :/' < %s/$(> %s/$(