LoginSignup
0
0

More than 3 years have passed since last update.

令和になってもUbuntuでNot Tetrisがしたい

Last updated at Posted at 2021-03-27

これは何?

以下2つの場合に読む備忘録
1. 新しいUbuntuに古いLove2Dを入れる
2. Ubuntuでtar ballをビルドする

導入

Not Tetrisは一見するとTetrisのように見えるクソゲー。
クロスプラットフォームなフレームワークLove2D上で動作する。

Linuxでもできる落ちゲーと聞いてプレイしようとした……が、動作せず。
どうやらapt install loveで取得したLove2Dと、当時のバージョンに互換性がないらしい。仕方がないので、tar ballからビルドすることにした。

前準備

ビルド環境

  • OS: Ubuntu 18.04.5 LTS
  • ビルドツール一式はapt install build-esseitial devscriptsでまとめて入っているものとする。
  • buildflags.confを以下の内容で作成するのがおすすめ。
$HOME/.config/dpkg/buildflags.conf
APPEND CFLAGS -march=native -pipe
APPEND CXXFLAGS -march=native -pipe

ソースコード

リンクからソースコードlove-0.7.2-linux-src.tar.gzを入手する。その後、作業用ディレクトリに展開する。

仮ビルド

仮Configure

  1. ./configure --helpを実行して、利用可能なオプションを眺めてみる。
  2. ./configureを実行する。
  3. おそらくSDLが無い事で怒られるので、依存パッケージを入れる
    configure.inやapt show love等の内容を参考に、libdevil-dev, libfreetype6-dev, liblua5.1-0-dev, libsdl1.2-dev等々を入れていく。
  4. configureが成功するまで頑張る。
    結果論だが./configure --enable-luajitしたらハマったので断念。

仮Make

  1. 以下の内容でcfg0.sh(修正前)を作成して、実行する。
  2. make する。
  3. OpenGL周りでコンパイルエラーが出るので、以下のようにcfg0.shを修正する。
  4. ./cfg0.shmakeの順に実行し、コンパイルが通るまで頑張る。
cfg0.sh(修正前)
#!/bin/bash
export CFLAGS="-pipe -O0"
export CXXFLAGS="-pipe -O0"
./configure
cfg0.sh(修正後)
#!/bin/bash
export CPPFLAGS="-DGL_GLEXT_PROTOTYPES"
export CFLAGS="-pipe -O0"
export CXXFLAGS="-pipe -O0"
./configure

本番ビルド+インストール

  1. make cleanする。
  2. dpkg-buildflags --export > cfg1.shとする。
  3. cfg1.shの適切な箇所に、-DGL_GLEXT_PROTOTYPES./configure --prefix=/opt/love --program-suffix=-0.7.2を追記する。
  4. cfg1してmakeして…(以下参照)
./cfg1
make
sudo make install
make clean

やったぜ

Screenshot from 2021-03-25 21-00-04.png

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