aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bba/bba.cmake8
-rw-r--r--bba/main.cc12
-rw-r--r--ecp5/family.cmake4
-rw-r--r--ice40/family.cmake4
4 files changed, 16 insertions, 12 deletions
diff --git a/bba/bba.cmake b/bba/bba.cmake
index 3e094277..a6995ca3 100644
--- a/bba/bba.cmake
+++ b/bba/bba.cmake
@@ -11,3 +11,11 @@ ENDIF(NOT CMAKE_CROSSCOMPILING)
IF(NOT CMAKE_CROSSCOMPILING)
EXPORT(TARGETS bbasm FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake )
ENDIF(NOT CMAKE_CROSSCOMPILING)
+
+include(TestBigEndian)
+TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
+if(IS_BIG_ENDIAN)
+ set(BBASM_ENDIAN_FLAG "--be")
+else()
+ set(BBASM_ENDIAN_FLAG "--le")
+endif()
diff --git a/bba/main.cc b/bba/main.cc
index b9cf6d8e..d4d16e12 100644
--- a/bba/main.cc
+++ b/bba/main.cc
@@ -66,12 +66,6 @@ const char *skipWhitespace(const char *p)
return p;
}
-bool testBigEndian()
-{
- int n = 1;
- return !*(const char *)&n;
-}
-
int main(int argc, char **argv)
{
bool debug = false;
@@ -115,8 +109,10 @@ int main(int argc, char **argv)
bigEndian = true;
else if (vm.count("le"))
bigEndian = false;
- else
- bigEndian = testBigEndian();
+ else {
+ printf("Endian parameter is mandatory\n");
+ exit(-1);
+ }
if (vm.count("c"))
writeC = true;
diff --git a/ecp5/family.cmake b/ecp5/family.cmake
index ec857569..4fe45a0d 100644
--- a/ecp5/family.cmake
+++ b/ecp5/family.cmake
@@ -45,7 +45,7 @@ if (NOT EXTERNAL_CHIPDB)
DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
- COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
+ COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)
if (SERIALIZE_CHIPDB)
@@ -70,7 +70,7 @@ if (NOT EXTERNAL_CHIPDB)
DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
- COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
+ COMMAND bbasm --c ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)
diff --git a/ice40/family.cmake b/ice40/family.cmake
index 6c46f459..3679a72e 100644
--- a/ice40/family.cmake
+++ b/ice40/family.cmake
@@ -44,7 +44,7 @@ if (NOT EXTERNAL_CHIPDB)
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
- COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
+ COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)
if (SERIALIZE_CHIPDB)
@@ -84,7 +84,7 @@ if (NOT EXTERNAL_CHIPDB)
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB}
)
add_custom_command(OUTPUT ${DEV_CC_DB}
- COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
+ COMMAND bbasm --c ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
DEPENDS bbasm ${DEV_CC_BBA_DB}
)