ctr_eFuse/Makefile
(no author) 547e8fb49c デバイス証明書デバッグ用のコード追加。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@39 ff987cc8-cf2f-4642-8568-d52cce064691
2009-12-23 01:48:51 +00:00

186 lines
4.6 KiB
Makefile

# nm ntd_mem_allocator.o | grep " [T|B|D] "
# nm ntd_crypto_ecdsa.o | grep " [T|B|D] "
# nm ntd_crypto_rsa.o | grep " [T|B|D] "
# nm generate_id.o | grep " [T|B|D] "
# nm ../rsa_keysrcgen/rsa1_key.o | grep " [T|B|D] "
# 最終的なビルドスイッチの設定は、以下の通り。
# DEV_CYGWIN = FALSE
# USE_HSM = TRUE
DEV_CYGWIN = TRUE
#USE_HSM = TRUE
ifeq ($(USE_HSM),TRUE)
# HSM使用時は強制的にDUMMY_KEYは未使用にする。
USE_DUMMY_KEY = FALSE
# nFast Path
NFAST_PATH = /opt/nfast
# nFast Developer tools installation
NFAST_DEV_PATH = $(NFAST_PATH)/c/ctd/gcc
NFAST_EXAMPLES = $(NFAST_PATH)/c/ctd/examples
# nFast Developer tools library
NFAST_LIBPATH = $(NFAST_DEV_PATH)/lib
# nFast Developer tools include
NFAST_INC = $(NFAST_DEV_PATH)/include
# nFast CPPFLAGS
NFAST_CPPFLAGS = \
-I$(NFAST_INC)/sworld \
-I$(NFAST_INC)/hilibs \
-I$(NFAST_INC)/nflog \
-I$(NFAST_INC)/cutils \
-I$(NFAST_EXAMPLES)/sworld \
-I$(NFAST_EXAMPLES)/hilibs \
-I$(NFAST_EXAMPLES)/nflog \
-I$(NFAST_EXAMPLES)/cutils \
# nFast LDLIBS
NFAST_LDLIBS = \
$(NFAST_LIBPATH)/librqcard.a \
$(NFAST_LIBPATH)/libnfkm.a \
$(NFAST_LIBPATH)/libnfstub.a \
$(NFAST_LIBPATH)/libnflog.a \
$(NFAST_LIBPATH)/libcutils.a -lm \
# nFast OBJS
NFAST_OBJS_PATH = $(NFAST_EXAMPLES)/nfuser/build-gcc-lib
NFAST_OBJS_LIST = \
$(NFAST_OBJS_PATH)/simplebignum.o \
$(NFAST_OBJS_PATH)/nfutil.o \
else # !USE_HSM
# HSMが使用できない場合は、DUMMY_KEYを使ってテストする。
USE_DUMMY_KEY = TRUE
endif # USE_HSM
ifeq ($(USE_DUMMY_KEY),TRUE)
DEV_DER_KEY_DIR = ./dummyKey/dev
PROD_DER_KEY_DIR = ./dummyKey/prod
else # !USE_DUMMY_KEY
DEV_DER_KEY_DIR = /cygdrive/w/CTR/dev
PROD_DER_KEY_DIR = /cygdrive/w/CTR/prod
endif # USE_DUMMY_KEY
PACKAGE_DIR = ./package
# OPENSSL_DIR = ./openssl-1.0.0-beta2
OPENSSL_DIR = ./openssl-0.9.8k
TARGET = gen_id
KEYS_C = cr_eFuse_privKey_prod.c cr_eFuse_pubKey_prod.c \
cr_eFuse_privKey_dev.c cr_eFuse_pubKey_dev.c \
cr_eFuse_aesKey_prod.c cr_eFuse_iv_prod.c \
cr_eFuse_aesKey_dev.c cr_eFuse_iv_dev.c \
cr_NintendoCTR2_priv_dummy_prod.c \
cr_NintendoCTR2_priv_dummy_dev.c
SRCS = main.c cr_generate_id.c cr_hsm_util.c cr_keyPair.c \
cr_deviceCert.c cr_enc_id.c cr_alloc.c cr_hsm_code.c
OBJS = $(notdir $(SRCS:.c=.o))
CFLAGS = -Wall -DMEXP=216091 -msse2 -DHAVE_SSE2
CPPFLAGS= -I. -I$(OPENSSL_DIR)/include -I$(OPENSSL_DIR)/crypto/ec
LDFLAGS = -mwindows -L$(OPENSSL_DIR)
LDLIBS = -lcrypto -lssl
ifeq ($(DEV_CYGWIN),TRUE)
CC := C:/Cygwin/bin/gcc
LD = C:/Cygwin/bin/gcc
CFLAGS += -mno-cygwin -DDEV_CYGWIN
LDFLAGS += -Wl,--subsystem,console -mno-cygwin
else # DEV_CYGWIN
CC := /usr/bin/gcc
LD = /usr/bin/gcc
LDFLAGS += -Wl
LDLIBS += -ldl -lnsl
endif # DEV_CYGWIN
ifeq ($(USE_DUMMY_KEY),TRUE)
CFLAGS += -DUSE_DUMMY_KEY
endif
ifeq ($(USE_HSM),TRUE)
CFLAGS += -DUSE_HSM
CPPFLAGS+= $(NFAST_CPPFLAGS)
LDLIBS += $(NFAST_LDLIBS)
endif
.SUFFIXES:
all: package_build $(KEYS_C) $(TARGET)
# install: $(TARGET)
# install -c -m 777 $(TARGET) ../bin
ifeq ($(DEV_CYGWIN),TRUE)
package_build :
cd $(PACKAGE_DIR);make DEV_CYGWIN=TRUE
else
package_build :
cd $(PACKAGE_DIR);make
endif
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $@ $(LDLIBS) $(NFAST_OBJS_LIST)
$(OBJS): $(HEADS) Makefile
%.o:%.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
#%.c:$(DER_KEY_DIR)/%.der
# perl tools/bin2c.plx $<
cr_eFuse_privKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_privKey.der
perl tools/bin2c.plx $< prod
cr_eFuse_pubKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_pubKey.der
perl tools/bin2c.plx $< prod
cr_eFuse_aesKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_aesKey.bin
perl tools/bin2c.plx $< prod
cr_eFuse_iv_prod.c : $(PROD_DER_KEY_DIR)/eFuse_iv.bin
perl tools/bin2c.plx $< prod
cr_NintendoCTR2_priv_dummy_prod.c : $(PROD_DER_KEY_DIR)/NintendoCTR2_priv_dummy.der
perl tools/bin2c.plx $< prod
cr_eFuse_privKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_privKey.der
perl tools/bin2c.plx $< dev
cr_eFuse_pubKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_pubKey.der
perl tools/bin2c.plx $< dev
cr_eFuse_aesKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_aesKey.bin
perl tools/bin2c.plx $< dev
cr_eFuse_iv_dev.c : $(DEV_DER_KEY_DIR)/eFuse_iv.bin
perl tools/bin2c.plx $< dev
cr_NintendoCTR2_priv_dummy_dev.c : $(DEV_DER_KEY_DIR)/NintendoCTR2_priv_dummy.der
perl tools/bin2c.plx $< dev
.PHONY: clean clobber
clean:
$(RM) $(OBJS) $(TARGET).exe $(KEYS_C) $(KEYS_H)
clobber:
$(RM) $(OBJS) $(TARGET).exe $(KEYS_C) $(KEYS_H)
cd $(PACKAGE_DIR);make clobber