11 # Contributors: |
11 # Contributors: |
12 # |
12 # |
13 # Description: DRM Crypto Library build configuration |
13 # Description: DRM Crypto Library build configuration |
14 # |
14 # |
15 |
15 |
16 CREATABLEPATH:=$(EXTENSION_ROOT)/../drmengine/drmcrypto/build |
16 ifeq ($(_CRYPTOPREP_FLM_),) |
17 CLEANTARGETS:=$(CREATABLEPATH)/cmlacrypto.cpp $(CREATABLEPATH)/omacrypto.cpp |
17 # first instance of this FLM |
18 |
18 _CRYPTOPREP_FLM_:= 1 |
19 crypto_files:=$(wildcard $(EXTENSION_ROOT)/../drmengine/drmcrypto/CMLA/*.cpp) |
|
20 |
19 |
21 |
20 |
22 GUARD:=done_$(call sanitise,$(CLEANTARGETS)) |
21 # NB: abspath doesn't like Windows drive letters |
23 ifeq ($($(GUARD)),) |
22 CRYPTO_SOURCE_DRIVE:=$(firstword $(subst :, ,$(EXTENSION_ROOT))) |
24 $(GUARD):=1 |
23 ifeq ($(CRYPTO_SOURCE_DRIVE),$(EXTENSION_ROOT)) |
|
24 CRYPTO_ROOT:=$(abspath $(EXTENSION_ROOT)/../drmengine/drmcrypto)) |
|
25 else |
|
26 CRYPTO_SOURCE_REST:=$(subst $(CRYPTO_SOURCE_DRIVE):, ,$(EXTENSION_ROOT)/../drmengine/drmcrypto) |
|
27 CRYPTO_ABSPATH:=$(abspath $(CRYPTO_SOURCE_REST)) |
25 |
28 |
26 BITMAP :: $(CREATABLEPATH) |
29 #Ensure that drive letter appears in absolute path once and only once. |
|
30 ifeq (,$(findstring $(CRYPTO_SOURCE_DRIVE):,$(CRYPTO_ABSPATH))) |
|
31 CRYPTO_ROOT:=$(CRYPTO_SOURCE_DRIVE):$(CRYPTO_ABSPATH) |
|
32 else |
|
33 CRYPTO_ROOT:=$(CRYPTO_ABSPATH) |
|
34 endif |
|
35 |
|
36 endif |
|
37 |
|
38 CREATABLEPATH:=$(CRYPTO_ROOT)/build |
|
39 |
|
40 crypto_files:=$(wildcard $(CRYPTO_ROOT)/CMLA/*.cpp) |
27 |
41 |
28 ifeq ($(crypto_files),) |
42 ifeq ($(crypto_files),) |
29 $(GNUCP) $(CREATABLEPATH)/../stub/CmlaCryptoStub.cpp $(CREATABLEPATH)/cmlacrypto.cpp |
43 CMLA_CRYPTO_SOURCE:=$(CRYPTO_ROOT)/stub/CmlaCryptoStub.cpp |
30 else |
44 else |
31 $(GNUCP) $(CREATABLEPATH)/../CMLA/CmlaCrypto.cpp $(CREATABLEPATH)/cmlacrypto.cpp |
45 CMLA_CRYPTO_SOURCE:=$(CRYPTO_ROOT)/CMLA/CmlaCrypto.cpp |
32 endif |
46 endif |
33 $(GNUCP) $(CREATABLEPATH)/../src/OmaCrypto.cpp $(CREATABLEPATH)/omacrypto.cpp |
47 CLEANTARGETS:=$(CREATABLEPATH)/cmlacrypto.cpp |
34 $(GNUCHMOD) u+w $(CREATABLEPATH)/cmlacrypto.cpp |
48 |
35 $(GNUCHMOD) u+w $(CREATABLEPATH)/omacrypto.cpp |
49 define drmcryptoprep |
|
50 |
|
51 BITMAP:: $(CLEANTARGETS) |
|
52 $(call startrule,drmcryptoprep) \ |
|
53 echo created $(CLEANTARGETS) \ |
|
54 $(call endrule,drmcryptoprep) |
|
55 |
|
56 |
|
57 $(CLEANTARGETS): $(CMLA_CRYPTO_SOURCE) |
|
58 $(call startrule,drmcryptoprep) \ |
|
59 $(GNUCP) $$< $$@ && \ |
|
60 $(GNUCHMOD) u+w $$@ \ |
|
61 $(call endrule,drmcryptoprep) |
|
62 |
|
63 endef |
36 |
64 |
37 # Create dirs |
65 # Create dirs |
38 $(call makepath,$(CREATABLEPATH)) |
66 $(call makepath,$(CREATABLEPATH)) |
39 |
67 $(eval $(call drmcryptoprep)) |
40 ## Clean up |
68 ## Clean up |
41 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS))) |
69 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS))) |
42 |
70 |
43 ## What |
71 ## What |
44 $(eval $(call whatmacro,$(CLEANTARGETS))) |
72 $(eval $(call whatmacro,$(CLEANTARGETS))) |
45 |
73 |
|
74 $(info <debug>$(PLATFORM) $(CFG), selecting $(CMLA_CRYPTO_SOURCE)</debug>) |
46 |
75 |
47 else |
76 else |
48 $(info <debug>$(PLATFORM) $(CFG), up-to-date $(CLEANTARGETS)</debug>) |
77 $(info <debug>$(PLATFORM) $(CFG), already handled $(CMLA_CRYPTO_SOURCE)</debug>) |
|
78 # FLM already included - don't duplicate the targets |
49 |
79 |
50 endif |
80 endif |