- Update C++/build.bat to create bin/ directory and output executable there - Update C++/build.sh to create bin/ directory and output executable there - Update build_all.bat to check for C++/bin/V2GDecoder.exe - Update build_all.sh to check for C++/bin/V2GDecoder - Test successful: C++/bin/V2GDecoder.exe working correctly with sample files 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
110 lines
3.0 KiB
Bash
110 lines
3.0 KiB
Bash
#!/bin/bash
|
|
# =============================================================================
|
|
# V2G EXI Decoder - 전체 플랫폼 빌드 스크립트 (Linux/macOS)
|
|
# 설명: C, VC2022 (gcc), .NET Core 모든 버전을 한 번에 빌드
|
|
# =============================================================================
|
|
|
|
echo
|
|
echo "=========================================="
|
|
echo "V2G EXI Decoder 전체 빌드 시작"
|
|
echo "=========================================="
|
|
echo
|
|
|
|
BUILD_ERROR=0
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# .NET Core 빌드
|
|
echo "[1/3] .NET Core 빌드 중..."
|
|
dotnet build DotNet/V2GDecoderNet.csproj -c Release
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: .NET Core 빌드 실패"
|
|
BUILD_ERROR=1
|
|
else
|
|
echo "SUCCESS: .NET Core 빌드 완료"
|
|
fi
|
|
echo
|
|
|
|
# VC -> GCC 빌드
|
|
echo "[2/3] GCC로 VC 소스 빌드 중..."
|
|
if [ -d "VC/src" ]; then
|
|
# GCC 컴파일 명령어
|
|
gcc -I"VC/src" \
|
|
-I"VC/src/codec" \
|
|
-I"VC/src/iso1" \
|
|
-I"VC/src/iso2" \
|
|
-I"VC/src/din" \
|
|
-I"VC/src/xmldsig" \
|
|
-I"VC/src/appHandshake" \
|
|
-I"VC/src/transport" \
|
|
-I"VC/src/compat" \
|
|
-O2 -Wall \
|
|
VC/V2GDecoder.c \
|
|
VC/src/codec/*.c \
|
|
VC/src/iso1/*.c \
|
|
VC/src/iso2/*.c \
|
|
VC/src/din/*.c \
|
|
VC/src/xmldsig/*.c \
|
|
VC/src/appHandshake/*.c \
|
|
VC/src/transport/*.c \
|
|
-o V2GDecoder_gcc
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: GCC 빌드 실패"
|
|
BUILD_ERROR=1
|
|
else
|
|
echo "SUCCESS: GCC 빌드 완료"
|
|
fi
|
|
else
|
|
echo "WARNING: VC 소스 폴더를 찾을 수 없습니다"
|
|
fi
|
|
echo
|
|
|
|
# C++ 빌드 확인
|
|
echo "[3/3] C++ 빌드 확인 중..."
|
|
if [ -f "C++/build.sh" ]; then
|
|
cd C++
|
|
./build.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: C++ 빌드 실패"
|
|
BUILD_ERROR=1
|
|
else
|
|
echo "SUCCESS: C++ 빌드 완료"
|
|
fi
|
|
cd "$SCRIPT_DIR"
|
|
elif [ -f "Makefile" ]; then
|
|
make clean && make
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: C 빌드 실패"
|
|
BUILD_ERROR=1
|
|
else
|
|
echo "SUCCESS: C 빌드 완료"
|
|
fi
|
|
else
|
|
echo "INFO: C++/Makefile이 없어 C++ 빌드를 건너뜁니다"
|
|
fi
|
|
echo
|
|
|
|
# 결과 요약
|
|
echo "=========================================="
|
|
echo "빌드 결과 요약"
|
|
echo "=========================================="
|
|
if [ $BUILD_ERROR -eq 0 ]; then
|
|
echo "✅ 모든 빌드가 성공적으로 완료되었습니다"
|
|
|
|
echo
|
|
echo "생성된 실행 파일들:"
|
|
[ -f "DotNet/bin/Release/net8.0/V2GDecoderNet.dll" ] && echo " 📦 .NET: DotNet/bin/Release/net8.0/V2GDecoderNet.dll"
|
|
[ -f "V2GDecoder_gcc" ] && echo " 📦 GCC: V2GDecoder_gcc"
|
|
[ -f "C++/bin/V2GDecoder" ] && echo " 📦 C++: C++/bin/V2GDecoder"
|
|
|
|
echo
|
|
echo "사용법:"
|
|
echo " dotnet run --project DotNet/V2GDecoderNet.csproj Sample/test5.exi"
|
|
echo " ./V2GDecoder_gcc Sample/test5.exi"
|
|
|
|
exit 0
|
|
else
|
|
echo "❌ 일부 빌드가 실패했습니다"
|
|
exit 1
|
|
fi |