LoginSignup
0
0

More than 5 years have passed since last update.

urjtagのautoconf

Last updated at Posted at 2017-01-17

パラレルポートがあるマシンがいつまで動いているかも分からないし、消費電力も大きいのでMIPSなルーターなどで使えるようにgpioのサポートを入れてみようと思いつき、追加のためにautoconfを確認した時のメモです。

とりあえずFreeBSDのppiがどのように設定されているか確認してみる。

configure.ac
AC_CHECK_HEADERS([dev/ppbus/ppi.h], [HAVE_DEV_PPBUS_PPI_H="yes"])

これによりautoconfで生成されたconfigureがFreeBSD上では

config.h
#define HAVE_DEV_PPBUS_PPI_H 1

を設定されてソース内の

#if HAVE_DEV_PPBUS_PPI_H
#endif

が有効になる。

Linuxなどの環境の場合はppi.cをコンパイルしないように

src/tap/Makefile.am
if ENABLE_LOWLEVEL_PPI
libtap_la_SOURCES += ¥
        parport/ppi.c
endif

によりソースを除外する。ENABLE_LOWLEVEL_PPIがどこで設定されているか分からなかったのだが、

configure.ac
URJ_DRIVER_SET([lowlevel], [
        direct
        ftdi
        ftd2xx
        ppdev
        ppi
],[

のリストから生成されてい、HAVE_DEV_PPBUS_PPI_Hがない場合はppiを消す事によりENABLE_LOWLEVEL_PPIが無くなります。

で、bsdgpioを追加してみた。

ロジックは/usr/include/libgpio.hがある場合にbsdgpioドライバを有効にするようにしています。

ちょっと不思議なのは元にしたgpioドライバがLinux用のコードなのだが、FreeBSDでも有効になってコンパイル通ってしまう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0