aboutsummaryrefslogtreecommitdiff
path: root/bin/initmk
blob: 2ea018f60bc3d57d0ee0a1fd945990a01113f66f (plain)
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
#!/bin/python

import os
import sys

NAME     = "rules.mk"
TEMPLATE = """include share/push.mk
# Iterate through subdirectory tree

# Local sources
SRCS_$(d) :=
LIBS_$(d) :=
BINS_$(d) :=
TSTS_$(d) :=

include share/paths.mk

# Local rules
# $(LIBS_$(d)) = TCFLAGS :=
# $(LIBS_$(d)) = TCINCS  :=
# $(LIBS_$(d)) = TCLIBS  :=

$(LIBS_$(d)): $(OBJS_$(d))
	$(ARCHIVE)

$(BINS_$(d)): $(OBJS_$(d))
	$(LINK)

$(UNTS_$(d)): $(TOBJS_$(d)) $(LIBS_$(d))
	$(LINK)

include share/pop.mk"""

if __name__ == "__main__":
    if len(sys.argv) == 2:
        dir = sys.argv[1]
        if not os.path.exists(dir):
            raise ValueError(f"path '{dir}' does not exist")
        path = f"{dir}/{NAME}"
    elif len(sys.argv) > 2:
        raise ValueError("only one argument is accepted")
    else:
        path = NAME
    try:
        with open(path, 'x') as makefile:
            makefile.write(f"{TEMPLATE}\n")
    except:
        print("rules.mk already present", file=sys.stderr)
        exit(1)