aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ic/c_src
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-06-29 08:09:21 +0200
committerBjörn Gustavsson <[email protected]>2011-08-08 11:59:11 +0200
commit8d3a2dfa646ab2ceb41905c673adb15e57bf9cfd (patch)
treeb27c6d43f8c61eab0069d6f6466cee6d78d149d5 /lib/ic/c_src
parent13cc114325d31626a84fbecbe07bb0f76c3726cf (diff)
downloadotp-8d3a2dfa646ab2ceb41905c673adb15e57bf9cfd.tar.gz
otp-8d3a2dfa646ab2ceb41905c673adb15e57bf9cfd.tar.bz2
otp-8d3a2dfa646ab2ceb41905c673adb15e57bf9cfd.zip
*/c_src/Makefile*: Support parallel make
Create directories first, not within implicit rules. If two 'install' instances runs at the same time attempting to create a directory, one of them may fail with an "File exists" error. I tried to use order-only prerequisites to create the directories, but run into two problems: First, order-only prerequisites are only implemented in Make 3.80 and later. Second, on a computer running Solaris/Intel 2.8 (with Make 3.80), order-only prerequisites seemed to work like ordinary prerequisites, causing targets to be re-built if the timestamp for the directory changed. Therefore, using a shell command to run mkdir seems to be the more portable solution.
Diffstat (limited to 'lib/ic/c_src')
-rw-r--r--lib/ic/c_src/Makefile.in8
1 files changed, 2 insertions, 6 deletions
diff --git a/lib/ic/c_src/Makefile.in b/lib/ic/c_src/Makefile.in
index 6eef7827b9..28040ca42d 100644
--- a/lib/ic/c_src/Makefile.in
+++ b/lib/ic/c_src/Makefile.in
@@ -125,13 +125,9 @@ docs:
# Special Build Targets
# ----------------------------------------------------
-$(OBJDIR):
- -mkdir -p $(OBJDIR)
+_create_dirs := $(shell mkdir -p $(OBJDIR) $(LIBDIR))
-$(LIBDIR):
- -mkdir -p $(LIBDIR)
-
-$(LIBRARY): $(OBJDIR) $(LIBDIR) $(OBJ_FILES)
+$(LIBRARY): $(OBJ_FILES)
-$(AR) $(AR_OUT) $@ $(OBJ_FILES)
-$(RANLIB) $@