Skip to content
This repository has been archived by the owner on Dec 15, 2019. It is now read-only.

sazae657/TonNurako

Repository files navigation

トンヌラコ

<トンヌラコ>.NetでX/Motifをなんとかしようというバベルの塔<トンヌラコ>

ライセンスはOpenMotifに従いLGPLとします

VSS

Build Status

ビルド

必要なもの

  • 広い心
  • mono 5.x
  • OpenMotif 2.3+
  • Python2.7
  • GNU Make

*Mac OSXで動かす場合は32bit版のライブラリーを用意するかmono64のインストールが必要な模様です

ソースを取ってくる

% git clone https://github.com/sazae657/TonNurako.git
% cd TonNurako

TonNurako.extremesportsのビルド準備

以下のシステムでは事前に準備が必要です

  • X11やMotifが一般的でない場所にインストールされている場合
  • 一部の不自由システムで検疫フォルダーにMotifが移動されてしまっている場合
  • msbuildを叩いたら PrePareExtremeSports もしくは BuildExtremeSports でエラーになった場合

該当しない場合はこの手順をすっ飛ばして構いません

手順詳細 1. 依存ライブラリーを自動検索させる場合 TonNurako/TonNurakoExで *make audio* を叩いてください
*AUDIO OK*と表示されれば成功です
```
% make audio
(中略)
-- AUDIO OK --
%
```
  1. パスを指定する場合

    TonNurako/TonNurakoEx/Config.mp3 を TonNurako/TonNurakoEx/Site.mp3にコピーしてパスを調整してください

    % cd TonNurakoEx
    % cp -i Config.mp3 Site.mp3
    % dtpad Site.mp3
    
  2. Config.mp3編集するのが面倒くさい場合

    TonNurako/TonNurakoEx/import.app フォルダー直下にX11とXmへのシンボリックリンクを作成してください

    # 例: Motifがウイルス並の扱いを受けて検疫フォルダーに移動されてしまっている不自由システムの場合
    
    % cd TonNurako/TonNurakoEx/import.app
    % ln -sv /Library/SystemMigration/History/Migration-{UUID}/QuarantineRoot/usr/include/X11 .
    % ln -sv /Library/SystemMigration/History/Migration-{UUID}/QuarantineRoot/usr/include/Xm .
    % ln -sv /Library/SystemMigration/History/Migration-{UUID}/QuarantineRoot/usr/lib .
    

ビルド出来る事の確認

% make clean all

トンヌラコ本体とデモのビルド

% msbuild
---
% ls bin/Debug/*Ton*
 bin/Debug/TonNurako.dll
 bin/Debug/TonNurako.dll.mdb
 bin/Debug/libTonNurako.extremesports
% ls bin/Debug/*.exe
 bin/Debug/Simple.exe
 bin/Debug/Widgets.exe
%

BSD系などで make がGNU Makeでない場合は環境変数 MAKE を設定して msbuild を実行してください

% env MAKE=gmake msbuild

デモの実行

% mono bin/Debug/Widgets.exe

Visual Studio Codeがあればデバッグボタンから実行できます

トンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコ

ウインドウにボタンが出来るだけのサンプル

using TonNurako.Widgets;
using TonNurako.Widgets.Xm;

namespace Simple
{
    class Program : Window
    {
        public override void ShellCreated() {
            var button = new PushButton();
            button.LabelString = "TonNurako!!";
            this.Children.Add(button);
        }

        static void Main(string[] args) {
            TonNurako.Application.Run(
                new TonNurako.ApplicationContext(), new Program());
        }
    }
}

% mcs /t:exe /r:TonNurako.dll Hoge.cs
% MONO_PATH=<path-to TonNurako.dll> mono Hoge.exe

トンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコンヌラコ