File: parallel-build

package info (click to toggle)
librcsb-core-wrapper 1.005-11
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 16,504 kB
  • sloc: xml: 122,915; cpp: 25,250; ansic: 3,736; makefile: 1,031; sh: 772; lex: 294; yacc: 235; perl: 213; python: 121; csh: 30
file content (66 lines) | stat: -rw-r--r-- 2,586 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Author: Laszlo Kajan <lkajan@rostlab.org>
Description: allow parallel make
Forwarded: http://lists.alioth.debian.org/pipermail/debian-med-packaging/2012-August/016975.html
--- a/cif-parser/Makefile
+++ b/cif-parser/Makefile
@@ -167,7 +167,7 @@ clean_build:
 	@rm -f $(M_AGR_LIB)
 
 
-$(L_MOD_LIB): $(OBJ_FILES)
+$(L_MOD_LIB): $(addprefix obj/,$(OBJ_FILES))
 #       Create module library
 	@cd $(OBJ_DIR); $(AR) $(AR_PUTFLAGS) ../$@ $(OBJ_FILES)
 	cp -f -t $(M_LIB_DIR) $(addprefix $(OBJ_DIR)/,$(OBJ_FILES) $(OBJ_FILES:.o=.lo))
@@ -177,18 +177,21 @@ $(L_MOD_LIB): $(OBJ_FILES)
 
 
 # Specific rules for making object files
-$(OBJ_DIR)/%Parser.o: $(SRC_DIR)/%Parser.y
-	@sh -c 'cd $(SRC_DIR); $(YACC) $(${^F:.y=_YACC_FLAGS}) ../$<'
+obj/%Parser.o $(SRC_DIR)/%Parser.h: $(SRC_DIR)/%Parser.y
+	sh -c 'cd $(SRC_DIR); $(YACC) $(${^F:.y=_YACC_FLAGS}) ../$<'
 	mv $(^:.y=.tab.c) $(^:.y=.c)
 	mv $(^:.y=.tab.h) $(^:.y=.h)
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o $@
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(^:.y=.c) -o obj/$(*)Parser.o
 
-%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o
-	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
-	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$@
+obj/%Scanner.o: $(SRC_DIR)/%Scanner.l $(OBJ_DIR)/%Parser.o $(SRC_DIR)/%Parser.h
+	$(LEX) $($(@F:.o=_LEX_FLAGS)) -t $(SRC_DIR)/$(@F:.o=.l) > $(SRC_DIR)/$(@F:.o=.c)
+	libtool --mode=compile $(CC) $(CFLAGS_NONANSI) -c $(SRC_DIR)/$(@F:.o=.c) -o $(OBJ_DIR)/$(@F)
 
 
 # Rule for making other object files
-%.o: $(SRC_DIR)/%.C
-	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$@
+obj/%ScannerBase.o: $(SRC_DIR)/%ScannerBase.C $(SRC_DIR)/%Parser.h
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
+
+obj/%.o: $(SRC_DIR)/%.C
+	libtool --mode=compile $(CCC) $(C++FLAGS) -c $< -o $(OBJ_DIR)/$(@F)
 
--- a/dict-obj-file/Makefile
+++ b/dict-obj-file/Makefile
@@ -111,7 +111,10 @@ all: install
 
 
 # Installation
-install: $(TARGETS)
+install: $(TARGETS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
+
+$(M_BIN_DIR)/$(TARGET_SCRIPTS): $(L_BIN_DIR)/$(TARGET_SCRIPTS)
+	cp -f $(L_BIN_DIR)/$(TARGET_SCRIPTS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
 
 
 # Test
@@ -141,7 +144,6 @@ clean: clean_build clean_test
 %: $(OBJ_DIR)/%.o $(M_MOD_LIB) $(ALL_DEP_LIBS)
 	$(CCC) $(LDFLAGS) $< $(M_MOD_LIB) $(ALL_DEP_LIBS) $(MALLOCLIB) -lm -o $(L_BIN_DIR)/$@
 	@cp -f $(L_BIN_DIR)/$@ $(M_BIN_DIR)/$@
-	@cp -f $(L_BIN_DIR)/$(TARGET_SCRIPTS) $(M_BIN_DIR)/$(TARGET_SCRIPTS)
 
 
 # Rule for build cleaning