From 4f3fa9accbd77f8c85f87ae057d2420ce7666ff7 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sat, 11 May 2013 17:22:44 +0200 Subject: [PATCH] Change mkdir -p to work on Windows. Windows mkdir doesn't know about the -p option and requires paths to use \ as path separator. Try to detect when building on Windows and use the Windows internal function instead of relying on a compatible mkdir in the path. Change-Id: I47d47d45edeb38c672321f77d6e91268bf744dba --- rbutil/libtools.make | 15 ++++++++++----- tools/rbspeex/Makefile | 8 +++++++- tools/ucl/src/Makefile | 8 +++++++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/rbutil/libtools.make b/rbutil/libtools.make index 2e3cc6f1e2..054a1c2c5a 100644 --- a/rbutil/libtools.make +++ b/rbutil/libtools.make @@ -21,6 +21,11 @@ endif # Get directory this Makefile is in for relative paths. TOP := $(dir $(lastword $(MAKEFILE_LIST))) +ifeq ($(OS),Windows_NT) +mkdir = if not exist $(subst /,\,$(1)) mkdir $(subst /,\,$(1)) +else +mkdir = mkdir -p $(1) +endif # overwrite for releases APPVERSION ?= $(shell $(TOP)/../tools/version.sh $(TOP)/..) @@ -93,7 +98,7 @@ $(OBJDIR)$(LIBUCL): # building the standalone executable $(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) @echo LD $@ -# $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(call mkdir,$(dir $@)) # EXTRADEPS need to be built into OBJDIR. $(SILENT)$(CROSS)$(CC) $(CFLAGS) $(LDOPTS) -o $(BINARY) \ $(OBJS) $(addprefix $(OBJDIR),$(EXTRADEPS)) \ @@ -102,7 +107,7 @@ $(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) # common rules $(OBJDIR)%.o: @echo CC $< - $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(call mkdir,$(dir $@)) $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $< # lib rules @@ -116,14 +121,14 @@ dll: $(OUTPUT).dll $(OUTPUT).dll: $(TARGET_DIR)$(OUTPUT).dll $(TARGET_DIR)$(OUTPUT).dll: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) @echo DLL $(notdir $@) - $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(call mkdir,$(dir $@)) $(SILENT)$(CROSS)$(CC) $(CFLAGS) -shared -o $@ $^ \ -Wl,--output-def,$(TARGET_DIR)$(OUTPUT).def # create lib file from objects $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) @echo AR $(notdir $@) - $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(call mkdir,$(dir $@)) $(SILENT)$(AR) rcs $@ $^ clean: @@ -138,6 +143,6 @@ $(BIN2C): # OS X specifics $(OUTPUT).dmg: $(OUTPUT) @echo DMG $@ - $(SILENT)mkdir -p $(OUTPUT)-dmg + $(SILENT)$(call mkdir,$(OUTPUT)-dmg)) $(SILENT)cp -p $(OUTPUT) $(OUTPUT)-dmg $(SILENT)hdiutil create -srcfolder $(OUTPUT)-dmg $@ diff --git a/tools/rbspeex/Makefile b/tools/rbspeex/Makefile index f7f080847d..24a0cedd8c 100644 --- a/tools/rbspeex/Makefile +++ b/tools/rbspeex/Makefile @@ -11,6 +11,12 @@ ifndef V SILENT = @ endif +ifeq ($(OS),Windows_NT) +mkdir = if not exist $(subst /,\,$(1)) mkdir $(subst /,\,$(1)) +else +mkdir = mkdir -p $(1) +endif + SPEEXSRC = ../../lib/rbcodec/codecs/libspeex INCLUDES = -I $(SPEEXSRC) @@ -124,5 +130,5 @@ clean: $(BUILD_DIR): @echo MKDIR $(BUILD_DIR) - $(SILENT)mkdir $(BUILD_DIR) + $(SILENT)$(call mkdir, $(BUILD_DIR)) diff --git a/tools/ucl/src/Makefile b/tools/ucl/src/Makefile index 8a73a53f5f..2d6f18f102 100644 --- a/tools/ucl/src/Makefile +++ b/tools/ucl/src/Makefile @@ -12,6 +12,12 @@ ifndef V SILENT = @ endif +ifeq ($(OS),Windows_NT) +mkdir = if not exist $(subst /,\,$(1)) mkdir $(subst /,\,$(1)) +else +mkdir = mkdir -p $(1) +endif + ifdef RBARCH CFLAGS += -arch $(RBARCH) endif @@ -59,7 +65,7 @@ $(TARGET_DIR)libucl$(RBARCH).a: $(OBJS) $(OBJDIR)/%.o: %.c @echo CC $< - $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(call mkdir, $(dir $@)) $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c $< -o $@ clean: