SCons 是好系統,不過對付 Fortran 90 (with module) 的時候還不夠聰明。

包含 module 的 Fortran 90 原始碼檔案在被 Object() 的時候除了 .o 檔之外,還會產生 .mod 檔。這個 .mod 檔同樣會被放進 Object() 傳回的 node list 裡,所以之後在 Program( "image", obj_list1+obj_list2 ) 的時候,linker 多半都會抱怨 blahblah.mod 的格式不對。

.mod 檔根本不應該被傳進 linker parameter list,不需要被連結。這裡告訴我們應該怎麼把 node list 裡的 .mod 檔濾掉;利用 filter() 函式。

目前這似乎是最簡單的解決方法。

Posted by yungyuc at 21:14, 0 comment, 0 trackback.

方便的 shell function:

pathmunge () {
  if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
    if [ "$2" = "after" ] ; then
      PATH=$PATH:$1
    else
      PATH=$1:$PATH
    fi
  fi
  export PATH
}

在設定路徑之前建立這個函式,就可以避免路徑裡出現重複的項目;加以變化,還可以設定其它種類的路徑:

manpathmunge () {
  if ! echo $MANPATH | /bin/egrep -q "(^|:)$1($|:)" ; then
    if [ "$2" = "after" ] ; then
      MANPATH=$MANPATH:$1
    else
      MANPATH=$1:$MANPATH
    fi
  fi
  export MANPATH
}

不知道 Debian 的 /etc/bashrc 裡為何沒有定義。把這個函式加到 ~/.bashrc 裡的話會很方便。

Posted by yungyuc at 20:45, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1
© hover year to navigate month: powered by django