diff options
| author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2013-05-11 17:22:44 +0200 |
|---|---|---|
| committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2013-05-11 20:34:12 +0200 |
| commit | 4f3fa9accbd77f8c85f87ae057d2420ce7666ff7 (patch) | |
| tree | 8fced5134d1d2fea634ab93063cf3647df632efc | |
| parent | 8a4075d454a64cc51ea7e496f346fd96d5970eff (diff) | |
| download | rockbox-4f3fa9accbd77f8c85f87ae057d2420ce7666ff7.zip rockbox-4f3fa9accbd77f8c85f87ae057d2420ce7666ff7.tar.gz rockbox-4f3fa9accbd77f8c85f87ae057d2420ce7666ff7.tar.bz2 rockbox-4f3fa9accbd77f8c85f87ae057d2420ce7666ff7.tar.xz | |
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
| -rw-r--r-- | rbutil/libtools.make | 15 | ||||
| -rw-r--r-- | tools/rbspeex/Makefile | 8 | ||||
| -rw-r--r-- | tools/ucl/src/Makefile | 8 |
3 files changed, 24 insertions, 7 deletions
diff --git a/rbutil/libtools.make b/rbutil/libtools.make index 2e3cc6f..054a1c2 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 f7f0808..24a0ced 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 8a73a53..2d6f18f 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: |