MacBookAir(2017 A1466)のSSD換装

MBASSD換装をしたのでメモを残す。
私のMBASSDの容量が128GB である。
購入当初は外部ストレージを兼用すればいいと思っていたが、普段使いの中で自然と空き容量が逼迫した。
ついに残5GBとなったところで、BigSurがインストール出来ず、SSD換装を決めた。

■購入部品
SSD換装には下記部品の用意が必要。
SSD本体
・本体の裏蓋を開ける工具
SSD→M.2変換アダプタ

SSD本体
下記のM.2SSDを購入した。
kakaku.com
ネットで検索するとcrucial製の事例が多いようだが、こちらで問題無く動作している。容量は512GBにした。

■工具
交換に必要な工具は
・星形ドライバ 1.2mm
・トルクスドライバ T5

世の中には以下のようなMBASSD換装用の工具セットがあるようだ。
www.amazon.co.jp
販売元が怪しいので、信頼のおけるメーカーからドライバーを単品購入した。
https://www.amazon.co.jp/gp/product/B002SQLE8G/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
Amazon | アネックス(ANEX) 精密ドライバー 特殊 5溝 1.2mm No.3470-G | DIY・工具・ガーデン


SSD→M.2変換アダプタ
こちらはメルカリで揃えた(相場は1000円位)
変換アダプタは販売元が怪しい所が多いので、匿名取引が出来るメルカリで揃えるのがいいかもしれない

■まとめ
トラブル無く、換装出来た。
手元に元々搭載していたSSDが余ったのだが、それはどうしよう。
端子が特殊規格なので、多く出回っている外付けケースには入らない。
一応外付けケースがあるにはあるらしいので、信頼出来る販売元を見つけたら買うことにする。

複数の拡張子のソースコードをビルドしたい時のMakefileの書き方

タイトルの件、わからないことがあったので覚書を残す。

 
・わからなかったこと
カレントディレクトリ以下のファイルを検索して、ビルド対象の拡張子毎にオブジェクトリストを生成し、最後にそれらをリンクしたかった。
しかし、オブジェクトのリストに*.o以外の拡張子も含まれてしまい、リンクエラーになる。

 
どんなコードを書いたか忘れてしまったが、例えば*.cのオブジェクトリストを見ると、下記のようになっていた。
OBJC   =  main.c hoge.c foo.c foobar.c main.o hoge.o foo.o foobar.o

この状態でOBJCをリンカに与えると、処理できない拡張子(つまりは*.c)が含まれているため、リンクエラーになる。
また、cleanのルールがrm -f $(TARGET) $(OBJC)とかになっていると、ソースも一緒に消えてしまう。
 

・正しいコード
C/C++の開発をしていると、拡張子が3個以上になる事がよくある。
規模が小さいならbashでビルド書いてもいいが、Makefileの方が小さく纏まり、拡張も簡単なのでメモとしてテンプレートを残す。

 

TARGET = GnuMakePractice

CC  = gcc
CXX = g++

CFLAGS    = -O0 -Wall
XFLAGS    = -O0 -Wall
LDFLAGS   =  
INCLUDE   = .
SRCDIR    = .

SRCC = $(shell find $(SRCDIR) -type f -name "*.c")
SRCX = $(shell find $(SRCDIR) -type f -name "*.cpp")
OBJC = $(SRCC:.c=.o)
OBJX = $(SRCX:.cpp=.o)

all: $(TARGET)

$(TARGET): $(OBJC) $(OBJX)
	$(CC) -o $(LDFLAGS) $@ $(OBJC) $(OBJX)
%.c.o : %.c
	$(CC) -c $(CFLAGS) $(INCLUDE) $(SRCC) -o $@ $(OBJC)
%.cpp.o : %.cpp
	$(CXX) -c $(XFLAGS) $(INCLUDE) $(SRCX) -o $@ $(OBJX)

.PHONY:clean
clean:
	rm -f *.o $(TARGET)

GitHub - mogu383/GnuMakePractice: This is a Gnu Make practice repository.

[2020/12/6追記]
アクセス数が増えていたので、コードの不備を直しました。
このようなMakefileを書こうとした時、拡張子が2つ以上でシンプルな作りのサンプルは少ないように感じました。
何か作る時、このMakefileをベースにするのもいいかもしれません。