# 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_id_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